参考this问题,假设我们有以下情况 -
实现IUser
[MetadataType(typeof(IUser))]
public class User : IUser
一个存储库,用于处理从我们想要使用的任何数据存储区中保存,检索此类
public class UserRepository : IRepository<User>
IQueryable<User> GetAUserBySomeCriteriaOrOther(int aParam, string anotherParam);
此外,我们将有一个控制器,也许还有一个顶部的视图,每个都期望IQueryable<User>
的实例。
我的问题是:
将结果从存储库传回的优点/缺点是(例如)IQueryable<User>
与IQueryable<IUser>
相比?
我要问的原因是我看到的大多数示例/演示都会使用IQueryable<User>
,但在我看来,这似乎是在更高层之间引入耦合,以及我用来生成User
类的任何方法。假设我想从Linq-to-Sql更改为Entity Framework - 这不是一个令人头痛的问题吗?
答案 0 :(得分:0)
EntityFramework不支持通过接口查询。 Linq2Sql可以搞清楚。
通常,您的User类在所有.NET ORM之间看起来都是一样的。切换ORMS时,你的linq和模型类可能不会改变。