我首先使用MVC数据库,并创建了一个.edmx文件。
现在我的所有表格都可以在这个model.tt文件中找到。 我还在表的那些字段上定义了一些数据注释。
但是我注意到,当我尝试更新此模型时,数据注释的值就会失效。
任何想法。
答案 0 :(得分:1)
是的,您读了多少关于注解的文章有点可笑,但是您实际上不能使用它们,因为它们会被覆盖。
这就是我发现可以帮助我的
http://www.ozkary.com/2015/01/add-data-annotations-to-entity.html
也是这个
https://docs.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; }
}
绝对不要编辑它。
相反,您可以在其中创建一个单独的类文件(我叫mine元数据.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; }
}
}