1

特定のクラスがデータベース(コードファーストのWebアプリ)の生成に使用されず、変更が監視されないことを示す方法を探しています。つまり、この特定のクラスを自動永続化動作から完全に切断する必要があります(ViewとController間のDTOとしてのみ使用されるため)。出来ますか?

4

1 に答える 1

2

Entity Frameworkは、データベースの予想される構造を検出するために使用しているDbContextクラスを使用します。

EFがデータベースにエンティティが存在すると想定する方法は2つあります。

  1. エンティティはDbContextによって直接参照されます。たとえば、DbSet<TEntity>(またはIDbSet<TEntity>
  2. エンティティはDbContextから間接的に参照されます。たとえば、上記のように参照されたエンティティがあり、プロパティとしてエンティティがあります。

エンティティが参照されると、そのエンティティスキーマを持つテーブルがデータベースに存在することが期待されます。エンティティを属性で装飾するか、モデルビルダーを使用することで、実際に期待されるスキーマがどのように表示されるか(名前、無視されるプロパティ、必須/不要など)を試すことができます。私の個人的な好みは、モデルビルダーを使用することです。ナビゲーションプロパティにモデルビルダーを使用する例については、 こちらの記事をご覧ください。

于 2012-11-18T01:16:25.530 に答える