5

私はEFを初めて使用し、実験を行っています。次のことが可能かどうか誰かに教えてもらえますか?次のようにDB内の(製品)テーブルが与えられます:

Id Cost DescriptionFK
-- ---- -------------
?  ?    ?

対応するPOCOクラス(エンティティ)を次のように表示したい:

public class Product
{
    public int Id { get; set; }
    public decimal Cost { get; set; }
    public string Description { get; }
}

クラスの「Description」は読み取り専用の文字列(セッターなし)ですが、テーブルのキーであることに注意してください。これを実行するためにストアドプロシージャを呼び出しています(キーを対応する文字列に変換し、上記のクラスを返します)が、次のようなことを行うと、次のようになります。

// ...
product.Cost = 20;
myContext.SaveChanges();

「Description」文字列のマッピングがないという例外が発生します。読み取り専用であり、クラス自体に「DescriptionFK」を含める必要がないため、マッピングを削除しました。これを実行する方法はありますか(POCOのみ)。どうもありがとう。

4

2 に答える 2

14

Descriptionプロパティを計算フィールドとして使用する場合は、プロパティに[NotMapped]を追加して明示的に除外し、データベースを生成します。

public class Product
{
    public int Id { get; set; }
    public decimal Cost { get; set; }

    [NotMapped] 
    public string Description { get; }
}
于 2012-07-29T00:49:59.770 に答える