posted 4/27/2010 by Bevans - Views: [1186]
LINQ is a abbreviation for Language Integrated Query, Which is just a fancy way of saying in that while in .net code you can write out your queries as if it were as simple as any other statement in you native programming language. For instance back it that distant past of 2006 a c# programmer would create a data table receiving object or some other in memory container. Then if up to standards create a data read and write object for the particular database, which would eventually have a query would be called with it filling the data table. But what if in memory objects, relational databases, and XML files could all be treated the same as OBJECTS! Objects such a magical word to us programmers, it could bring a tear. But it doesn’t stop there, there is in fact some performance gains to think over.
Of course the numbers vary based on circumstance and almost any bit of code can show slow performance if written incorrectly. With this in mind Uncompiled LINQ performance is will not wow anyone. It is in fact about 20% slower than traditional queries. But once compiled LINQ can show performance increases up to x6.0. Here is a great LINQ comparison with ADO.net.
LINQ can integrate with a database in several ways. At heart LINQ is O/RM which means it would best work directly with the database, making each table an object. Each object can then be joined as needed and CRUD operations performed. Okay, I know you DBA’s out there are not to happy with that prospect! But LINQ also supports views and stored procedures. Here is a few examples.
[Table(Name="Products")] public class Customer { [Column(Id=true)] public string ProductID; [Column] public string ProductName; [Column] public string Description; [Column] public string Quantity; }V
[Table(Name="Products")] public class Customer { [Column(Id=true)] public string ProductID; [Column] public string ProductName; [Column] public string Description; [Column] public string Quantity; }
V
Vola our object is created know lets use it.
DataContext db = new DataContext(); var q = from p in db.Products where p.ProductName == "DTS xChange" select p;
Here are a few articles that have helped me and may interest you.
Intro to LINQ
MSDN LINQ
Good Bye SP's
LINQ vs. ADO.net