我正在使用基于数据库的MVC 4。
每次刷新model.edmx
文件时,我添加的显示名称属性都会被删除。如何在刷新之间保留显示名称属性?
我正在使用基于数据库的MVC 4。
每次刷新model.edmx
文件时,我添加的显示名称属性都会被删除。如何在刷新之间保留显示名称属性?
你需要使用System.ComponentModel.DataAnnotations
。这里是一个在EF中展示如何使用的“User”表格的简单例子:
namespace YourNamespace.BlaBlaBla
{
[MetadataType(typeof(UserHelper))]
public partial class User { }
public class UserHelper
{
[Display(Name = "Your New Title For Name")]
public string Name { get; set; }
}
}
您还可以在类中包含验证。请确保它是一个具有相同名称的部分类 - 也不要忘记它必须与您的.edmx文件处于完全相同的命名空间中。
[MetadataType(typeof(ModelMD))]
public partial class Model
{
//This is for "extending" the EF generated model, saying what class is used for metadata, in your case DisplayName
}
public partial class ModelMD
{
[Display(Name = "Model_Title", ResourceType = typeof(DataFieldLabels))]
public string Titulo { get; set; }
[Display(Name = "Model_Description", ResourceType = typeof(DataFieldLabels))]
public string Descripcion { get; set; }
}
在上面的示例中,我使用资源文件来获取字段的显示名称...但你也可以以更硬编码的方式使用它 :)
你应该在另一个文件夹中创建一个新文件,比如说 "ModelMD"。这样,在模型重新生成时,此文件将保持不变。
重要提示:ModelMD 文件应使用与原始模型相同的命名空间。如果将文件放在不同的文件夹中,则默认为另一个命名空间。