我目前正在考虑我的数据对象的存储库模式,其中IQueryable<>
可以将多个实例注册为数据源,但让它运行似乎并不容易。
使用 LINQ to 实体和 LINQ To Objects 运行简单的 LINQ 查询不起作用。你认为这通常是可能的吗?也许唯一的解决方案是编写一个指定的提供者?
在我的存储库中,我调用.Union<>()
了所有 IQueryable 实例,然后最后使用 LINQ 对生成的单个IQueryable
. 结果是一个IQueryable
被完全忽略了。
我目前正在考虑我的数据对象的存储库模式,其中IQueryable<>
可以将多个实例注册为数据源,但让它运行似乎并不容易。
使用 LINQ to 实体和 LINQ To Objects 运行简单的 LINQ 查询不起作用。你认为这通常是可能的吗?也许唯一的解决方案是编写一个指定的提供者?
在我的存储库中,我调用.Union<>()
了所有 IQueryable 实例,然后最后使用 LINQ 对生成的单个IQueryable
. 结果是一个IQueryable
被完全忽略了。
好吧,我在列表上使用 LINQ 查询,收集一大堆东西。我在 SQL 表上使用非常相似的查询。我从来没有遇到任何问题。我听说有人在 LINQ to 对象上使用 LINQ 查询时遇到一些问题,但我认为它们通常被认为是 LINQ 错误,而不是由于 LINQ to 对象、LINQ to XML 和 LINQ to SQL 工作方式的设计差异。在我安装 VS 2008 SP1 之前的几天里,我确实遇到了一些 LINQ 问题,但这些问题已经得到解决。
只要您考虑到查询返回的内容,它就应该可以正常工作。
我绝对没有文档来支持这一点,但我确实记得在发布前几天关于 Linq to SQL 中内置的优化的一些讨论,这些优化将试图在 Linq to SQL IQueryable 上执行操作时消除对数据库的多次调用<> 对象和 Linq to Object IQueryable<> 对象。这与 IQueryable 接口的整体架构相结合,让我认为在不同的提供者上操作应该没有问题。但是,交互的能力似乎可能基于提供者的特定实现。
我知道我已经对 Linq to Object 和 Linq to XML 集合的组合进行了操作,没有问题。