覆盖实体框架实体属性

Pla*_*mus 5 c# overriding entity-framework asp.net-mvc-3

我在EF中有一个名为Profile的实体,我想将数据注释属性添加到该实体的"FirstName"属性中,所以我创建了一个新的分部类,如此;

public partial class Profile : EntityObject
{
    [Required]
    [Display(Name = "First Name")]
    [EdmScalarPropertyAttribute(EntityKeyProperty = false, IsNullable = false)]
    [DataMemberAttribute()]
    override public global::System.String FirstName
    {
        get
        {
            return _FirstName;
        }
        set
        {
            OnFirstNameChanging(value);
            ReportPropertyChanging("FirstName");
            _FirstName = StructuralObject.SetValidValue(value, false);
            ReportPropertyChanged("FirstName");
            OnFirstNameChanged();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到了这个;

public partial class Profile : EntityObject
{
    [Required]
    [Display(Name = "First Name")]
    [EdmScalarPropertyAttribute(EntityKeyProperty = false, IsNullable = false)]
    [DataMemberAttribute()]
    override public global::System.String FirstName
    {
        get
        {
            return _FirstName;
        }
        set
        {
            OnFirstNameChanging(value);
            ReportPropertyChanging("FirstName");
            _FirstName = StructuralObject.SetValidValue(value, false);
            ReportPropertyChanged("FirstName");
            OnFirstNameChanged();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

问候,

瑞安

TBo*_*jnr 5

遗憾的是你无法改变它.您必须创建元数据类并将元数据属性添加到该类.见以下链接:

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.metadatatypeattribute.aspx

看一下这个链接,看看生成元数据类的一些问题,我通常做的是,如果我改变一些东西,我只需通过添加一个新服务重新生成元数据类,然后删除服务,然后合并两个保留旧的更改和保留新添加的实体.