私はNHibernateから来ています。エンティティフレームワークがリンクエンティティを処理するのはかなり混乱しています。エンティティフレームワークが同じリンクエンティティを何度も保存しています
私はPostというモデルを持っています。各投稿には、どのアカウントが投稿を作成したかを示すlinkeエンティティアカウントがあります。私はポストを作成するとき
、私は次のコードを使用します。
var post = new Post();
post.Account = GetAccount();
db.Posts.Add(post);
db.SaveChanges();
は何GetAccount()クッキーに基づいて、データベースから、現在のユーザーのアカウントを取得しているん。また、現在の要求(asp.net)のためにこれをキャッシュして、複数回フェッチする必要はありません。
これで、保存した投稿ごとに新しいアカウント(同じID番号を持つ)が挿入されます。私はEqualsとGetHashCodeをAccount用に実装しましたが、これはNHibernateでは十分だったが、Entity Frameworkでは十分ではなかったでしょうか?
私には何が欠けていますか?
GetAccountは投稿を保存するのと同じdbContextを使用しますか? –
@feanzああ、意味があります。いいえ、彼らはしなかったし、今はそれが動作するときに動作します。回答を投稿すると、それをマークします。 –