加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 06:59:45 所属栏目:asp.Net 来源:网络整理
导读:我是MVC的新手,也是使用EF的新手.在我们的应用程序中,我们使用 Database first方法.由于我们正在使用DB第一种方法,我们正在从db中生成edmx. 当我生成edmx时,它会为我的数据库中的表生成所有相关的类别.在这里,我只是混淆了是否直接使用我的视图中生成的类,或
我是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将为您提供从数据库中获取所需信息的想法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读