使用Entity Framework 4,并给出:
ObjectSet<Thing> AllThings = Context.CreateObjectSet<Thing>;
public IQueryable<Thing> ByNameA(String name)
{
IQueryable<Thing> query = from o in AllThings
where o.Name == name
select o;
return query;
}
public IQueryable<Thing> ByNameB(String name)
{
return AllThings.Where((o) => o.Name == name);
}
两者都返回IQueryable&lt;&gt;实例,因此在调用类似ToList()
的内容之前查询不会到达服务器,对吧?纯粹的可读性是不同的,还是在后端使用根本不同的技术?
答案 0 :(得分:1)
这些编译成几乎完全相同的代码。
第一种语法由编译器直接转换为具有第二种语法中提供的名称的方法。
这两种方法之间的主要区别仅在于您使用的是不同的语法,并且您正在分配临时变量(查询)而不是直接返回结果。但是,出于所有实际目的,它们是相同的。