的区别是什么
Linq:var data=from a in context.object select a;
EF:var data=context.object().Tolist();
答案 0 :(得分:3)
他们都是LINQ。
第一个是查询(表达式)语法
IEnumerable<int> numQuery1 =
from num in numbers
where num % 2 == 0
orderby num
select num;
另一个是方法语法
IEnumerable<int> numQuery2 = numbers
.Where(num => num % 2 == 0)
.OrderBy(n => n);
答案 1 :(得分:0)
在您的情况下,区别在于,在第一种情况下,数据将是惰性IEnumerable
类型,并且将在枚举时执行。
第二个示例将枚举对列表的收集,并且在执行ToList
方法后,集合将在内存中。
但我认为您对LINQ运算符(如from
,where
,select
和方法Where
,Select
等之间的差异感兴趣。运算符编译为方法时没有区别。
答案 2 :(得分:0)
两种语法之间的区别是:
您的第一个查询是LINQ to Sql,第二个查询是实体SQL。
实体SQL由实体框架对象服务直接处理
实体SQL返回ObjectQuery而不是IQueryable
答案 3 :(得分:0)
您的意思是了解实体框架中查询语法的差异。
<强> Basics of LINQ & Lamda Expressions 强>
LINQ
Linq是微软首次尝试将查询集成到语言中。我们知道,当我们想要在DataTable或列表中执行相同的操作时,很容易从sql对象中简单地编写查询来查找数据。通常我们必须遍历每个元素以找到完全匹配,如果有一些聚合我们需要聚合值等.Linq提供了一种简单的方法来编写可以与内存对象一起运行的查询。
<强> Lamda 强>
lambda表达式是一个匿名函数,可用于创建委托或表达式树类型。通过使用lambda表达式,您可以编写可以作为参数传递或作为函数调用的值返回的本地函数。 Lambda表达式对于编写LINQ查询表达式特别有用。
希望它有所帮助。