gpt4 book ai didi

c# - 实现 LINQ 提供程序

转载 作者:行者123 更新时间:2023-11-30 16:05:47 24 4
gpt4 key购买 nike

我目前正在为自己的教育目的实现 LINQ 提供程序。我设法得到了Count()最近延期工作,到目前为止一切顺利。

现在我的问题不是求助,而是要求澄清。

为了创建提供者,需要实现两个接口(interface):IQueryProvider和类似 IOrderedQueryable<> 的东西. MSDN 明确了如何实现它们,但有一点仍然让我感到困惑。

为什么这些接口(interface)由单独的类实现,即使每个 IOrderedQueryable实例引用自己的IQueryProvider实例和两个对象实际上(间接)引用相同的数据?

他们真的需要分开吗?

此外。我可以这样组合它们:class Source<RowContract> : IQueryProvider, IOrderedQueryable<RowContract> - 为了简化类型信息访问。此实现现在可以正常工作,并且看起来比“单独的类”方法更简单明了。

我想知道我的组合实现是否存在缺陷。或者,也许它是有效的?

如有任何解释,我们将不胜感激。

最佳答案

msdn 所述IQueryProvider 专注于创建和执行查询。而 IQueryable 是被查询的东西。将它们全部组合在一起可能会将相似的代码放在一起,但它最终不尊重关注点分离。

关于c# - 实现 LINQ 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33094446/

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