Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
reposity返回的结果应该是哪种集合类型?(.Net)_.net_Persistence_Repository Pattern - Fatal编程技术网

reposity返回的结果应该是哪种集合类型?(.Net)

reposity返回的结果应该是哪种集合类型?(.Net),.net,persistence,repository-pattern,.net,Persistence,Repository Pattern,在.net应用程序中使用基于存储库的持久性时,通常应使用哪种集合类型 IList,IEnumerable 例如,FindAll()方法。对于只读集合,可以使用ReadOnlyCollection。FindAll为列表提供的功能可以通过使用LINQ在其他类型上获得。对于只读集合,您可以使用ReadOnlyCollection。FindAll为列表提供的功能可以通过使用LINQ在其他类型上获得。这取决于 IEnumerable最大限度地减少了调用代码和存储库实现之间的耦合。但所有进一步的处理(如分

在.net应用程序中使用基于存储库的持久性时,通常应使用哪种集合类型

IList,IEnumerable


例如,FindAll()方法。

对于只读集合,可以使用
ReadOnlyCollection
FindAll
列表提供的功能可以通过使用LINQ在其他类型上获得。

对于只读集合,您可以使用
ReadOnlyCollection
FindAll
列表提供的功能可以通过使用LINQ在其他类型上获得。

这取决于

  • IEnumerable
    最大限度地减少了调用代码和存储库实现之间的耦合。但所有进一步的处理(如分拣)都必须在过程中完成
  • IQueryable
    允许添加更多操作,这些操作可能(取决于存储库实现)在基础数据存储上执行
因为您可以轻松地在这两者之间进行转换(有一个
AsQueryable
扩展方法,它允许将
IEnumerable
转换为
IQueryable
进行键入,但当然处理仍在内存中完成)

就个人而言,我喜欢
IQueryable
提供的潜在好处,即使非基于LINQ的存储库现在可能无法从中受益。另一方面,雅格特尼。

这要看情况而定

  • IEnumerable
    最大限度地减少了调用代码和存储库实现之间的耦合。但所有进一步的处理(如分拣)都必须在过程中完成
  • IQueryable
    允许添加更多操作,这些操作可能(取决于存储库实现)在基础数据存储上执行
因为您可以轻松地在这两者之间进行转换(有一个
AsQueryable
扩展方法,它允许将
IEnumerable
转换为
IQueryable
进行键入,但当然处理仍在内存中完成)


就个人而言,我喜欢
IQueryable
提供的潜在好处,即使非基于LINQ的存储库现在可能无法从中受益。另一方面,YAGTNI.

我总是使用IEnumerable,因为它是可以返回的最小类型,所以你不给客户他不需要的东西

我总是使用IEnumerable,因为它是可以返回的最小类型,所以你不给客户他不需要的东西