[英]Override Entity Framework Entity Property
我在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();
}
}
}
但我得到了这个;
“
CC.Models.Profile
”类型已包含“FirstName”的定义
有任何想法吗?
问候,
瑞安
遗憾的是你无法改变它。 您必须创建元数据类并将元数据属性添加到该类。 见以下链接:
看一下这个链接,看看生成元数据类的一些问题,我通常做的是,如果我改变一些东西,我只需通过添加一个新服务重新生成元数据类,然后删除服务然后合并两个保留我的旧更改和保留新添加的实体。
不幸的是,您不能在POCO中生成的属性中添加任何注释。
可能的解决方法是修改TT模板,以便为要仅定位的给定属性+实体添加所需的自定义注释。
当我想使用企业库实现验证时,我在之前的项目中遇到了同样的问题。 我最终创建了一个部分类,并编写了用注释装饰的方法。
在您的情况下,您可以尝试在部分类中创建一个属性(具有不同的名称),该属性返回顶部带有注释的EF实体属性。
我相信你必须将你的财产标记为部分。
实际上我认为你也想删除覆盖(因为你没有覆盖父属性。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.