我使用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; }
}
}