LINQ to SQL

Let’s move on to databases, which most likely are the main data source for your website. Microsoft includes a LINQ provider for talking to SQL Server with .NET v3.5, along with a couple of other tools for use in VS2008 to make your life a bit simpler, including a LinqDataSource object and something called an Object Relational Designer. The point of the former is fairly obvious, but to explain the latter, here’s a question:

What can’t you create, update, or delete in SQL Server?
Answer: objects.

From Relations to Objects

The problem is that SQL Server doesn’t present you with objects that inherit from IQueryable or IEnumerable. In fact, it doesn’t even present objects at all, just rows and columns. No properties, events, or methods even. So, if you have a Book object with properties called ISBN, Title, and ReleaseDate, saving that object to the database, as you’ve seen, involves the nontrivial task of converting it back into raw data that the database can handle. Typically, this means the object itself would be represented by a row in a table and the properties would be represented by columns within that row. Similarly, when retrieving data from the database, that data must be converted to the appropriate objects and properties for your program to work with it.

The use of DataSource objects and ADO.NET gives you a way to overcome this impedance mismatch, but only by way of allowing you to define how things should be selected or saved to a database in a given context. It would ...

Get Programming ASP.NET 3.5, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.