覆盖实体框架实体属性
问题描述:
我在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();
}
}
}
但我得到这个;
The type 'CC.Models.Profile' already contains a definition for 'FirstName'
任何想法?
问候,
瑞安
答
您可惜不能改变这样的。您必须创建一个元数据类并将元数据属性添加到该类。见下面的链接:
看一看this链接查看与生成的元数据类的一些问题,我通常做的是,如果我改变的东西我只是通过添加新的服务,并删除再生metadataclass之后的服务,然后将两者合并,保留旧的更改并保留新添加的实体。
答
我相信你必须标记你的财产的部分为好。
其实我想你也将要删除的覆盖(因为你没有覆盖parent属性。)
+6
你不能标记一个属性为部分... – 2011-04-16 21:27:46
答
不能遗憾地将任何注释添加到在POCO中生成的属性。
一种可能的解决方法是修改TT模板以添加您想要的给定属性+实体的自定义注释,该属性+实体仅用于目标。
当我想使用企业库实现验证时,我在以前的项目中遇到了同样的问题。我最终创建了一个部分类,并编写了使用注释装饰的方法。
对于您的情况,您可以尝试在部分类中创建一个属性(使用不同的名称),该属性返回顶部带有注释的EF实体属性。
我试过这一个,但这是行不通的。 – 2017-07-25 10:28:02