Nar*_*esh 5 orm entity-framework c#-4.0 asp.net-mvc-3 asp.net-mvc-4
我是MVC的新手,也是使用EF的新手.在我们的应用程序中,我们使用Database first方法.由于我们正在使用DB第一种方法,我们正在从db中生成edmx.
当我生成edmx时,它会为我的数据库中的表生成所有相关的类别.在这里,我只是混淆了是否直接使用我的视图中生成的类,或者我应该在EF生成的类之上再创建一层类,并从我的控制器和视图中使用它们.
如果我在实体之上再创建一层类,我必须在这些类之间进行映射.我怀疑如果模型有任何变化,将来可能会很痛苦.
如果我直接使用控制器中的实体,我觉得我将所有不必要的东西暴露给控制器和视图.
有人可以告诉我如何继续这个吗?
你按照自己的方式做就很好,不需要改变它。您应该能够使用生成的类,或者如果您认为暴露了太多,您可以创建一个视图模型,仅用您关心的数据填充该视图模型并将其传递给视图。这就是 MVC 应该如何工作的。
假设您有一个名为的数据库表Articles,其中有很多您不想传递给视图的内容,您可以创建一个像这样的视图模型
public class ArticlesViewModel
{
[Required] // this is optional, just to give you an idea of validation
public string Title { get; set; }
public DataTime Date { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在在你的控制器中你会有这样的东西:
ArticlesViewModel articleVM = new ArticlesViewModel();
// populate it from your DB
return View(articleVM);
Run Code Online (Sandbox Code Playgroud)
所以现在你的视图只有Titleand Date,(你也应该有,这样你就可以轻松地从数据库中ID检索完整的内容。)Article
这将使您了解从数据库中获取所需的信息。
| 归档时间: |
|
| 查看次数: |
4836 次 |
| 最近记录: |