私のエンティティフレームワーク4.3データベースの最初のプロジェクトを新しいエンティティフレームワーク5にアップグレードしました。
明らかに、私は今ObjectContextの代わりにDbContextを使用しています。
Entity Framework 5のLoadProperty
古い.edmxファイルを新しいものに置き換えました。私の古いビジネスコード、それは以前、私の4.3 .edmxファイルを使用していた今LoadProperty
メソッドを使用してコードに問題があります。
using (var context = new MyEntities())
{
Models.User user = context.Users.First(x => x.GUID == guid);
context.LoadProperty(user, o => o.Settings);
return user;
}
LoadPropertyはDbContextで利用可能な方法ではないようです。
とにかく、厳密な型付き読み込みを取得するにはどうすればよいですか?
私は
context.Users.Include("Settings")
を使用することとしたが、それは強い型付きやタイプミスを起こしやすいではありません。
あなたに:ここ
を含める拡張メソッドに関するいくつかの情報です...:これが含まれているため はDbExtensionクラスから来て、usingステートメントを忘れないでくださいObjectContextを使用している場合はEF4.3を使用していませんでした.EF4.3は基本的にDbContextに関するすべてのものでした。遅延読み込みが有効になっていると、明示的に読み込むことなく.Settingsプロパティを使用できます。データベースへのトリップを引き起こす可能性があるので注意してください。頻繁に行う場合は、下記のように.Include()を使用する方が安価かもしれません。 – Pawel
@パベル:ああ申し訳ありません。私は更新後に遭遇した別の問題についての質問を読んで、私の状況をより良く説明するために「実用的」でそれを引用しました。私はその文章を打ちました。 – citronas