我想添加一个属性到实体框架为我创建的生成的数据类之一。我在另一个生成的类上做了完全相同的事情,没有任何问题,并且出于某种原因,它不适用于此类。实体框架:自定义生成的数据对象异常
两个生成的对象之间唯一的区别是一个是直接表映射(工作的),另一个是从另一个对象(不工作的)继承的。换句话说一个表代表了两个实体,并根据某些条件我将它并创建了两个继承实体...
<EntityType Name="Product" Abstract="true">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="String" Nullable="false" />
</EntityType>
<EntityType Name="Key" BaseType="MyEntities.Product">
<Property Name="Status" Type="String" Nullable="true" />
<Property Name="SerialNumberString" Type="String" Nullable="true" />
</EntityType>
<EntityType Name="License" BaseType="MyEntities.Product" >
<Property Name="ProductCode" Type="String" Nullable="true" />
<Property Name="Version" Type="String" Nullable="true" />
</EntityType>
伊夫然后加入如下属性...
public partial class Key
{
public int? SerialNumber
{
get
{
int serialNumber;
if (int.TryParse(SerialNumberString, out serialNumber))
{
return serialNumber;
}
return null;
}
set
{
SerialNumberString = value.ToString();
ReportPropertyChanged("SerialNumber");
}
}
}
现在当ReportPropertyChanged被调用时抛出这个异常:
System.ArgumentException:属性'SerialNumber'在实体对象上没有有效的实体映射。有关更多信息,请参阅实体框架文档。
我在另一个生成的数据类中没有抛出IDENTICAL代码,唯一的区别是继承,发生了什么?
SerialNumberString被映射到一个只包含数字数据的nvarchar列,所以我添加的SerialNumber属性包装了所以我可以使用它作为一个数字。 – andrej351 2009-07-09 02:30:14
是的,我想说的可能是EF不喜欢的。将“SerialNumber”重命名为“SerialNumber2”,看看它是否开始抱怨“SerialNumber2”。 – 2009-07-09 02:47:11