我正在尝试将属性添加到 Entity Framework 为我创建的生成数据类之一。我在另一个生成的类上做了完全相同的事情,没有问题,由于某种原因,它在这个类上不起作用。
两个生成的对象之间的唯一区别是一个只是一个直接的表映射(一个有效的),另一个继承自另一个对象(一个不工作的)。换句话说,一个表代表两个实体,并且基于一些标准,我将它抽象出来并创建了两个继承实体......
<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”在实体对象上没有有效的实体映射。有关详细信息,请参阅实体框架文档。
我在另一个不会抛出的生成数据类中有相同的代码,唯一的区别是继承,这是怎么回事?