Dinesh Kulkarni, Luca Bolognese, Matt Warren, Anders Hejlsberg, Kit George March 2007 Applies to: Visual Studio Code Name "Orcas" .

Modern programming languages define information in the form of objects. Objects have unique identity as each instance is physically different from another. Objects have references that identify and link instances together.

Rows are left intentionally distinct requiring related rows to be tied together loosely using foreign keys.

Objects stand alone, existing as long as they are still referenced by another object.

These queries are significant portions of the program logic.

Yet they are opaque to the language, unable to benefit from compile-time verification and design-time features like Intelli Sense.

Of course, the differences go far deeper than that.

How information is represented—the data model—is quite different between the two.

NET Change Conflict Resolution Stored Procedures Invocation The Entity Class Generator Tool Generator Tool DBML Reference Multi-tier Entities External Mapping NET Framework Function Support and Notes Debugging Support Most programs written today manipulate data in one way or another and often this data is stored in a relational database.

Yet there is a huge divide between modern programming languages and databases in how they represent and manipulate information.

This impedance mismatch is visible in multiple ways.

Most notable is that programming languages access information in databases through APIs that require queries to be specified as text strings.