0

約 20 のプロパティを持ついくつかの大きなエンティティがあり、場合によってはそこから DropDownLists を作成する必要があります。SelectList では、クエリによって返された元の 20 個のプロパティのうち、2 つのプロパティ (ID と名前) のみを使用して終了します。

私はこれをロードするためにこのメソッドを使用しています:

new SelectList(db.Contacts.AsNoTracking().Where(x => x.idTenant == CurrentTenantID), "ContactId", "Name");

これは正常に機能していますが、Contacts dbset のクエリは明らかにすべての列を返しています。データベースへのクエリを軽くするために、列を 20 から 2 に狭めるにはどうすればよいですか?

この場合だけデータベースでストアド プロシージャまたはビューを実行し、これを DropDownList の作成に使用できることはわかっていますが、Entity Framework を直接使用してそれを行う別の方法はありますか?

これは連絡先だけでなく、いくつかのエンティティで発生するため、このシナリオを処理するための明確な戦略が必要です。

4

1 に答える 1

2

クエリに on を追加でき.Selectます。

new SelectList(db.Contacts.AsNoTracking()
    .Where(x => x.idTenant == CurrentTenantID)
    .Select(x => new { x.ContactId, x.Name })
    , "ContactId", "Name");
于 2013-08-21T13:19:07.373 に答える