Entity Framework が作成した生成済みデータ クラスの 1 つにプロパティを追加しようとしています。別の生成されたクラスでまったく同じことを問題なく実行しましたが、何らかの理由でこのクラスでは機能しません。
生成された 2 つのオブジェクトの唯一の違いは、1 つは単純なテーブル マッピング (機能するオブジェクト) であり、もう 1 つは別のオブジェクトから継承される (機能しないオブジェクト) ことです。言い換えれば、1 つのテーブルは 2 つのエンティティを表し、いくつかの基準に基づいて、それを抽象化し、2 つの継承エンティティを作成しました...
<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' には、エンティティ オブジェクトに対する有効なエンティティ マッピングがありません。詳細については、Entity Framework のドキュメントを参照してください。
スローしない別の生成されたデータ クラスに IDENTICAL コードがあります。唯一の違いは継承です。何が起こっているのですか??