当社には、以下を使用するソフトウェアアプリケーションがあります。
-Entity Framework 4
-コードファーストアプローチ
以前は、アプリケーションはEntity Framework Database Firstコードに基づいていましたが、Code Firstアプローチの使用を開始するように変更しました。
ここには、Alex D Jamesのブログ投稿で言及されている問題と同様の問題がいくつかあります。https://blogs.msdn.microsoft.com/alexj/2009/06/02/tip-22-how-to-make-include-really-include/
Entity Framework Database Firstコードに基づいた古いコードには、次のようなコードが含まれていました。
var results =
((from post in ctx.Posts
from blog in post.Blogs
where blog.Owner.EmailAddress == “alexj@microsoft.com”
select post) as ObjectQuery<Post>).Include(“Comments”);
ただし、Code Firstアプローチに変更したため、前述の投稿では次のエラーが発生します。
Object reference not set to an instance of an object.
Entity Framework Database FirstコードからCode Firstに移行したときに発生した何らかの問題のようです
コードを次のように変更しました。
var results =
(from post in ctx.Posts.Include(“Comments”)
from blog in post.Blogs
where blog.Owner.EmailAddress == “alexj@microsoft.com”
select post);
ただし、コメントに関連付けられたPostエンティティ(つまり、コメントのコレクションのナビゲーションプロパティ)は "Eager Loaded"ではありません。これは、tillが次のエラーをスローするため問題があります。
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
Entity Framework Code Firstアプローチで適切に動作するようにコードを変更する方法を教えてください。
回答 1 件
関連記事
- データベースからのEntity Frameworkモデルの更新、カスタムプロパティが認識されない
- Entity Framework Coreデータベースの最初のアプローチでは、エンティティをインフラストラクチャレイヤーから分離するにはどうすればよいですか?
- C#Entity Frameworkデータベースで最初にキー違反がありませんEntitySet ''は、キーが定義されていないタイプ ''に基づいています
- Entity Framework CoreおよびRESTクライアント:コード編成
- コンソールアプリケーションでEntity Frameworkを使用して、データベースからHTMLのフィールドにデータを入力する方法は?
- SQL ServerビューがEntity Frameworkで機能しないのはなぜですか
- データベース内のエンティティではないFileUploadビュー/ビューモデルを作成する方法
- Entity Frameworkを使用する理由、ナビゲーションプロパティがデータベース内に表示されない
- Entity Frameworkは関連オブジェクトをロードしません
関連した質問
- カスタムEFコア移行スクリプト?
- Entity Frameworkコードの最初の二重FKとしてのPK
- selectmanyを使用する場合の削除時のエンティティフレームワーク参照制約エラー
- Entity Frameworkを使用した状態パターンの永続化
- エンティティフレームワーク6のコードの最初のアプローチで2つのテーブル間に1対多および多対1のマッピングを作成する
- 更新中のエンティティフレームワークエラー:フィールドは必須です
- EFCoreデータの移行で2番目の移行を追加するとエラーがスローされる
- モデルのテーブルがサーバーエクスプローラーテーブルにありません
- エンティティフレームの作業コードが最初に機能しない
リファレンス:DBQueryをObjectQueryに変換するにはどうすればよいですか?
@ ladislav-mrnkaの状態: "
DbQueryにはIncludeメソッドが含まれているため、ObjectQueryに変換する必要はありません。 ObjectQueryはDbQueryインスタンスからアクセスできません-内部型InternalQueryにラップされており、変換演算子は定義されていません。
ところでSystem.Data.Entityとrefrence CTP5を使用して追加すると、IQueryableでIncludeを呼び出すことができます! 」