10

我有我的带有实体框架的 asp.net mvc 3 应用程序,我使用 Database First 模型来设置它。

我的步骤如下: 1. 使用表生成数据库 2. 创建 ADO.NET 实体数据模型文件 (.edmx) 并导入表 3. 在设计中我添加了一个代码生成项并使用 ADO.NET DbContext Generator 4. a与所有表格模型一起制作的 Model1.tt 支架

我已经编辑了模型并使用 DataAnnotations 属性更新了它们(仅举一个众所周知的例子)

public class LogOnModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [Display(Name = "Remember me?")]
    public bool RememberMe { get; set; }
}

现在,当我对数据库进行更改并将其更新到 edmx 文件时,所有模型都将被覆盖,并且 DataAnnotations 属性将消失。

我的问题:我如何使用数据库优先模型并仍然编辑模型以进行特定验证,就像我可以自由地使用代码优先模型一样?(请不要使用第三方工具解决方案)谢谢

4

2 回答 2

10

您需要使用伙伴课程。请参阅我过时但仍然有用的文章http://msdn.microsoft.com/en-us/library/ee256141(v=vs.98).aspx

于 2012-02-10T18:59:30.303 回答
1

在您的 Views 中使用 ViewModels。这将使您的 EF 实体与您的 UI 逻辑分离。

于 2012-02-10T20:16:29.643 回答