微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc-3 – 在Entity Framework中使用数据库第一种方法

我是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; }
}

现在在你的控制器中你会有这样的东西:

Articlesviewmodel articleVM = new Articlesviewmodel();
// populate it from your DB

return View(articleVM);

所以现在你的视图只有标题和日期,(你也应该有ID,这样你就可以轻松地从数据库中检索完整的文章.)

This将为您提供从数据库获取所需信息的想法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐