如何在MVC数据优先方法中保留数据注释



我使用MVC数据库优先的方法,并创建了一个.edmx文件。

现在我的所有表都可以在这个model.tt文件中使用了。我还在表的这些字段上定义了一些数据注释。

但我注意到,当我试图更新这个模型时,数据站的价值就会失效。

有什么想法吗。

是的,你读了很多关于注释的书,但实际上你不能使用它们,因为它们会被覆盖。

这是我发现的帮助我

http://www.ozkary.com/2015/01/add-data-annotations-to-entity.html

还有这个

https://learn.microsoft.com/en-us/previous-versions/aspnet/ee256141(v=vs.98(

我并不假装理解,但这里有一个加入点的指南。

生成的EF类示例如下:

public partial class Employee
{
public int Emp_ID { get; set; }
public string Emp_Name { get; set; }
public Nullable<System.DateTime> Commencement_Date { get; set; }
}

绝对不要编辑这个。

相反,您创建了一个单独的类文件(我称之为minemetadata.cs,并将其放在Models文件夹中(,其中包含以下内容:

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
namespace MyProject.Models
{
[MetadataType(typeof(EmployeeMD))]  // new name for your metadata class
public partial class Employee    // same name as your EF generated class
{
// Nothing in here
}
internal sealed class EmployeeMD // your metadata class
{
[Required]
[StringLength(50, MinimumLength = 2, ErrorMessage = "Name required")]
public string Emp_Name { get; set; }

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> Commencement_Date { get; set; }
}
}

相关内容

  • 没有找到相关文章

最新更新