Entity Framework 两种类型的查询
Entity Framework two types of queries
这些查询有什么区别?他们的名字是什么?我什么时候应该使用哪个?
var queryLondonCustomers = from cust in customers
where cust.City == "London"
select cust;
using (var context = new BloggingContext())
{
var blogs = context.Blogs
.Where(b => b.Url.Contains("dotnet"))
.ToList();
}
好吧,它们是同一件事的两个完全不同的查询。
但是如果你只是问语法差异的话,前者的语法在编译时会被解释成后者的语法。因此,任何两个 仅在语法 (而不是实际查询功能)上不同的查询在所有意图和目的上都是相同的。
例如,这个:
from cust in customers
where cust.City == "London"
select cust
同理:
customers.Where(cust => cust.City == "London")
可能 编译器可能会产生一些不同的东西,例如还附加一个 .Select()
,它实际上并没有做任何有趣的事情。但关键是前者的“LINQ语法”并没有做任何特别的事情,它只是后者的一种语法上不同的表达方式。
这些查询有什么区别?他们的名字是什么?我什么时候应该使用哪个?
var queryLondonCustomers = from cust in customers
where cust.City == "London"
select cust;
using (var context = new BloggingContext())
{
var blogs = context.Blogs
.Where(b => b.Url.Contains("dotnet"))
.ToList();
}
好吧,它们是同一件事的两个完全不同的查询。
但是如果你只是问语法差异的话,前者的语法在编译时会被解释成后者的语法。因此,任何两个 仅在语法 (而不是实际查询功能)上不同的查询在所有意图和目的上都是相同的。
例如,这个:
from cust in customers
where cust.City == "London"
select cust
同理:
customers.Where(cust => cust.City == "London")
可能 编译器可能会产生一些不同的东西,例如还附加一个 .Select()
,它实际上并没有做任何有趣的事情。但关键是前者的“LINQ语法”并没有做任何特别的事情,它只是后者的一种语法上不同的表达方式。