我读过一些禁止在通用存储库上公开IQueryable的文章,因为它是一个LINQ实现。我只是想问一下是否可以将IQueryable用于私人用途,这意味着它无法在存储库外访问。
答案 0 :(得分:2)
完全可以使用任何进行私有实现。它不会通过API向您的存储库的客户端公开,因此它不会以任何方式影响它们。
实际上,存储库的客户端应该仅依赖于存储库抽象(通常是接口)。因此,即使不属于客户端使用的接口的公共成员也不会影响该客户端。
BTW无法避免在存储库中私有使用IQueryable,因此您正在使用Entity Framework。您在存储库中定义的任何查询都是IQueryable:)