1. ホーム
  2. c#

[解決済み] Entity Framework 4 でラムダ式を使った Include の使用法

2023-03-08 14:51:42

質問

この問題を解決する方法について、多くの記事を見ましたが、すべてCTP4に関するもので、独自の拡張メソッドを追加することもできます。

インクルード内部でラムダ式を使用する EF4 の公式な方法はありますか (第 1 レベルの関係および第 2 レベル以上の関係の両方について)、それとも結局 RTM には含まれていないのでしょうか?

私のコードでラムダ式を使用すると(#system.data.entity #system.data.linq と)まだ問題が発生するので、それがあるならば、私はそれを行う方法を学ぶことを嬉しく思います。

ラムダ式はデリゲートタイプではないので、'string'タイプに変換できません。 と表示されます。

var customers = from c in
context.Customers.Include(c=>c.Phone)

どのように解決するのですか?

Entity Framework 4.1 の RTM バージョンには、実際には 拡張メソッド EntityFramework.dll ファイルを通してラムダを使ったイーガーローディングのために Include 関数でラムダを使ったイーガーローディングができます。このDLLをプロジェクトに組み込むだけで、以下のようなコードを書くことができるはずです。

var princesses1 = context.Princesses.Include(p => p.Unicorns).ToList();

を含めるために、Import/Using ステートメントを追加することを忘れないでください。 System.Data.Entity を含むように Import/Using ステートメントを追加することを忘れないでください。さもないと、コンパイラは拡張メソッドを見つけることができません。 例

using System.Data.Entity;

これを見る ADO.NETチームブログ の記事を参照してください。