我正在使用VS2012启动MVC4。我也使用EF5和“数据库优先”方法创建我的类。
但是,由于生成的眼镜可以重新生成,因此我无法提供数据注释详细信息以帮助验证。
我看过一些使用MetaData和部分类的代码片段,但我想知道是否有人知道我可以看到的一个小的可编辑的例子,并分开以更好地理解血管类如何相互链接。
非常感谢任何帮助。 戴夫
答案 0 :(得分:4)
您可以通过扩展模型实现所需。假设EF为您生成了以下实体类:
namespace YourSolution
{
using System;
using System.Collections.Generic;
public partial class News
{
public int ID { get; set; }
public string Title { get; set; }
public int UserID { get; set; }
public virtual UserProfile User{ get; set; }
}
}
并且您想要做一些工作来保存您的数据注释和属性。因此,请按照以下步骤操作:
首先,在下面添加两个类(在任何你想要的地方,但最好是在Models
中),如下所示:
namespace YourSolution
{
[MetadataType(typeof(NewsAttribs))]
public partial class News
{
// leave it empty.
}
public class NewsAttribs
{
// Your attribs will come here.
}
}
然后在此处将您想要的属性和属性添加到第二个类 - NewsAttribs
。 :
public class NewsAttrib
{
[Display(Name = "News title")]
[Required(ErrorMessage = "Please enter the news title.")]
public string Title { get; set; }
// and other properties you want...
}
备注:强>
1)生成的实体类的名称空间和您的类必须相同 - 这里YourSolution
。
2)您的第一堂课必须为partial
且其名称必须与EF生成的课程相同。
通过这个,你的属性再也没有丢失......