私が理解している限り、タイプ Type のプロパティをデータベースに直接格納することはできません。したがって、ラッパーを作成することにしました - Entity Framework に型名を保存し、目的の型を返すプロパティを作成する必要があります。
[Table("DescriptiveCategory")]
public class DescriptiveCategory : Category {
public string RelatedTypeName { get; set; }
public Type RelatedType {
get {
return Type.GetType(RelatedTypeName);
}
set {
RelatedTypeName = value.FullName;
}
}
}
残念ながら、これは機能しません。データベースを更新しようとすると、
Value cannot be null.
Parameter name: extent
RelatedType
プロパティにコメントすれば、すべて問題ありません。しかし、このプロパティを使用して Entity Framework を使用したくはありません。それは私のニーズにのみ応えます。代わりに get メソッドと set メソッドを作成することもできますが、このアプローチ (計算されたプロパティを使用) が機能しない理由がわかりません。