我想添加一個屬性到實體框架爲我創建的生成的數據類之一。我在另一個生成的類上做了完全相同的事情,沒有任何問題,並且出於某種原因,它不適用於此類。實體框架:自定義生成的數據對象異常
兩個生成的對象之間唯一的區別是一個是直接表映射(工作的),另一個是從另一個對象(不工作的)繼承的。換句話說一個表代表了兩個實體,並根據某些條件我將它並創建了兩個繼承實體...
<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