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?|
The problem is that SQL Server doesn’t present you with objects that inherit from
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 ...