Я пытаюсь добавить свойство в один из сгенерированных классов данных, которые 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 не имеет действительного сопоставления сущностей на объекте сущности. Для получения дополнительной информации см. Документацию Entity Framework.
У меня есть ИДЕНТИЧНЫЙ код в другом сгенерированном классе данных, который не выбрасывает, единственная разница - наследование, что происходит ??