.net LinqToSQL语法是否与LinqToEntity或任何其他LINQ_TO相同?
LinqToSQL语法是否与LinqToEntity或任何其他LINQ_TO相同?当我们处理例如SQL server中不能在XML数据或数组数据中使用的数据时,是否可以使用其他语法(可用方法) 我知道我可以在此处显示的所有数据源上使用方法: 但是有一些特定于某些LINQ提供者的方法吗 或者可以肯定地说,LINQ语法在所有提供程序中都是100%兼容的?C#语法本身是相同的:都是LINQ,它只是C#的一部分。但是,您使用的API以及允许您调用的方法可能会因LINQ提供程序的不同而有所不同 例如,在LINQtoObjects中,您可以调用几乎所有C#库中定义的方法。但是,Entity Framework和LINQ to SQL尝试将方法调用转换为SQL语法,因此,如果它们没有被显式编程为知道如何转换给定的方法或操作,那么当它们尝试执行查询时,您将收到运行时错误 LINQtoXML得到了LINQtoObjects的有效支持——我认为它没有使用自己的查询提供程序——但它提供的API允许您将XML元素视为对象。如果正在查询,则找不到类似.net LinqToSQL语法是否与LinqToEntity或任何其他LINQ_TO相同?,.net,linq,.net,Linq,LinqToSQL语法是否与LinqToEntity或任何其他LINQ_TO相同?当我们处理例如SQL server中不能在XML数据或数组数据中使用的数据时,是否可以使用其他语法(可用方法) 我知道我可以在此处显示的所有数据源上使用方法: 但是有一些特定于某些LINQ提供者的方法吗 或者可以肯定地说,LINQ语法在所有提供程序中都是100%兼容的?C#语法本身是相同的:都是LINQ,它只是C#的一部分。但是,您使用的API以及允许您调用的方法可能会因LINQ提供程序的不同而有所不同 例如,在
.Elements()
的方法,例如实体框架中的集合
大多数“LINQ to[X]”框架都基于您对IQueryable
或IEnumerable
对象调用扩展方法,但您可以通过实现.Where()
和等方法在任何对象上启用LINQ查询表达式语法。例如,实现了.Where()
和.Select()
,因此您可以说:
from m in Maybe.From(GetValue())
where m.IsCool
select m.Name
但是它没有实现IEnumerable
接口,因此没有实现GroupBy之类的方法。如果您试图在查询Maybe
时使用组x by y
语法,编译器会抱怨。您混合了LINQ和ORM
提供对对象集合的查询功能,IEnuerable
,IQueryable
提供通过对象与数据库对话的功能
有些方法,如Last
/LastOrDefault
,TakeWhile
不适用于LINQ to SQL,因为LINQ to SQL负责将LINQ查询转换为正在部署的数据源语言,即SQL
你可以看到:
类似地,也可能存在LINQ方法,这些方法在内存收集中受支持,但在其他提供程序中不受支持。这将取决于每个提供商