どのようにエンティティフレームワーク内のテーブルの特定の列のみを表示するには?

どのようにエンティティフレームワーク内のテーブル全体の代わりにテーブルのいくつかの特定の列を表示する方法。

using (DataEntities cxt = new DataEntities())
{
    notes note = cxt.notes.Where(no => no.id == accID).SingleOrDefault();
    return notes;
}
1

2 答え

この目的のために、以下のようにViewModelを使用することをお勧めします。

notes note = cxt.notes.SingleOrDefault(no => no.id == accID);
var model = new YourViewModel//Your viewModel class
            {
                   ID = note.ID,
                   PropertyOne = note.PropertyOne,//your ViewModel Property
                   PropertyTwo = note.PropertyTwo
            };
2
追加された

QueryView でこれを行うことができます。 これはデザイナーのサポートがないため、XMLで直接モデルを編集することを意味しますが、元のフィールドよりもフィールドの少ない独立したエンティティを取得します。

利点:

  • この切り詰められたエンティティのデータベースに直接問い合わせることができます(データベースから必要なフィールドのみを取得します.DBからエンティティ全体を取得してコード内に変換する必要はありません)。
  • このトランケートされたエンティティを クライアント        WCFを使用してトラフィックを最小限に抑えます(例:クライアントに大きなリストを作成する場合        基本的には名前とIDのみを必要とし、他のエンティティは特定しない        情報)。

短所:

  • このQueryViewベースのエンティティは読み取り専用です。書き込み可能にするには、自分でr/w機能を追加する必要があります。
0
追加された