1

私が理解している限り、タイプ 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 メソッドを作成することもできますが、このアプローチ (計算されたプロパティを使用) が機能しない理由がわかりません。

4

1 に答える 1

1

使用NotMappedAttribute:

プロパティまたはクラスをデータベース マッピングから除外する必要があることを示します。

于 2013-09-03T12:18:02.110 に答える