ASP.Net MVC 2 - 与存储库的模型耦合

时间:2010-06-27 01:55:31

标签: asp.net-mvc interface model entity

参考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 - 这不是一个令人头痛的问题吗?

1 个答案:

答案 0 :(得分:0)

EntityFramework不支持通过接口查询。 Linq2Sql可以搞清楚。

通常,您的User类在所有.NET ORM之间看起来都是一样的。切换ORMS时,你的linq和模型类可能不会改变。