gpt4 book ai didi

linq-to-sql - Linq to SQL 和 Linq to Objects 查询是否相同?

转载 作者:行者123 更新时间:2023-12-04 13:10:26 24 4
gpt4 key购买 nike

如果我们抽象出 DataContext,那么 L2S 和 L2O 查询是否相同?

我已经有一个可以证明这一点的工作原型(prototype),但它非常简单,想知道它是否能支持更高级的查询。

有人知道吗?

最佳答案

不,他们不一样。

LINQ to Objects 查询在 IEnumerable<T> 上运行收藏品。查询遍历集合并针对集合中的项目执行一系列方法(例如, Contains Where 等)。

LINQ to SQL 查询在 IQueryable<T> 上运行收藏品。编译器将查询转换为表达式树,然后将该表达式树转换为 SQL 并传递给数据库。

LINQ to SQL 提示无法将方法转换为 SQL 是很常见的,即使该方法在 LINQ to Objects 查询中完美运行。 (在其他情况下,您可能看不到异常,但查询结果在 LINQ to Objects 和 LINQ to SQL 之间可能略有不同。)

例如,LINQ to SQL 会阻塞这个简单的查询,而 LINQ to Objects 会很好:

var query = from n in names
orderby n.LastName.TrimStart(',', ' ').ToUpper(),
n.FirstName.TrimStart(',', ' ').ToUpper()
select new { n.FirstName, n.LastName };

(通常可以解决这些限制,但您不能保证任何任意 LINQ to Objects 查询都可以作为 LINQ to SQL 查询工作这一事实告诉我,它们并不相同!)

关于linq-to-sql - Linq to SQL 和 Linq to Objects 查询是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1052508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com