任何人都可以伸出援手吗?我一直在观看MVC店面的视频,并使用这些技术创建了我自己的网站,即DDD,Repository模式,但我希望使用Entity Framework.
在Interfaces中它返回IQueryable但是我应该返回ObjectQuery而不是Entity Framework吗? - 我将使用LINQ.
同样在存储的示例中,它是这样的:IQueryable
同样在MVC存储中,Category类是一个构建的实体类(标准类),但是使用Entity Framework,这些类是在对象上下文中预先构建的 - 它们不是吗?
所以我应该建立它们?
我有点困惑.如果有人有任何有用的示例或代码,那将非常有帮助.
正如我所说,我使用linq2sql观看了MVC店面的视频,但我真的想使用Entity Framework.
有任何想法吗?
谢谢
锻冶匠的工作
让我一次回答一个问题:
您的存储库应该返回IQueryable
为了在Stack Overflow中使用段落文本中的大于和小于符号,您必须像在HTML中那样对它们进行转义,即:
<
您不需要在代码块中执行此操作; 在代码块中,您只需键入小于/大于符号.
也许如果您在http://www.asp.net/learn/mvc/#MVC_SampleApp网站上看到联系管理器教程,他们会使用存储库模式和实体框架.
几个星期前我就像你一样开始,你会发现使用EF非常容易.我的项目很小,所以我使用EF生成的实体作为我的模型类,你可以使用部分类为它们添加自己的逻辑.
以下是我的一个存储库的简单方法,例如:
////// Finds a user by it's credentials /// /// ///public User FindByCredentials(string username, Byte[] password) { User user = null; if (!Validators.IsStringEmptyOrNull(username)) { user = this.FindByCredentialsQuery(username, password).FirstOrDefault (); } return (Validators.IsNull(user)) ? new User() : user; } /// /// Finds a user by it's credentials /// /// /// ///protected IQueryable FindByCredentialsQuery(string username, Byte[] password) { var query = from Users in this.UserDataContext.Users where (Users.Username == username) && (Users.Password == password) && (Users.Enabled == true) select Users; return query; }
请注意,我只在存储库中使用IQueryable,并仅返回请求的实体列表.这样我就可以控制对DB的查询总是在Repo中执行.