由于 LINQ to SQL 只能与 SQL Server一起使用,因此微软现在不大推荐使用,替代方案是 LINQ to Entity Framework。
LINQ与 Entity Framework的整合性很好,推荐使用,可能的话尽量不要使用 LINQ to SQL。
//query all books
BooksEntitiesContainer bookContext = new BooksEntitiesContainer();
var books = from book in bookContext.Books select book;
foreach (var book in books)
{
book.AuthorReference.Load();
Console.WriteLine("{0}, {1} {2}", book.Title,
book.Author.FirstName, book.Author.LastName);
}
Entity Framework 支持数据库表间的继承关系(inheritance relationships),LINQ也可以无缝(seamlessly)的使用该功能:
BooksEntitiesContainer bookContext = new BooksEntitiesContainer();
var textBooks = from book in bookContext.Books where book is Textbook
select book as Textbook;
foreach (var textBook in textBooks)
{
//load the author info
textBook.AuthorReference.Load();
Console.WriteLine("{0}, {1} {2} - {3}", textBook.Title,
textBook.Author.FirstName, textBook.Author.LastName,
textBook.Subject);
}