私は、私が理由を理解していると思うにもかかわらず、これは面白いです。私はUnitTestを作成して、私の継承の問題についてアレックスの提案をしようとするブログエントリを追加しました。今私は別のものに出くわす。EF4 - ブログエントリを追加すると、プロフィールに不満がありますか?
[TestMethod]
public void UserCanAddBlogEntry()
{
var context = new EntityContext(Options.LazyLoading);
var user = (from u in context.Users
.Include("Blog.BlogEntries")
where u.Id == 1
select u).FirstOrDefault();
BlogEntry entry = new BlogEntry();
entry.Header = "Test Entry";
entry.Text = "Test Text blah blah blah";
entry.CreatedAt = DateTime.Now;
entry.Blog = user.Blog;
user.Blog.BlogEntries.Add(entry);
context.SaveChanges();
Assert.IsTrue(user.Blog.BlogEntries.Count > 0);
}
は、例外が発生:
失敗UserCanAddBlogEntry Zirzle.UnitTests
試験方法UserCanAddBlogEntryは 例外をスロー: のSystem.InvalidOperationException:の ナビゲーションプロパティ 'ユーザ' で検出 無効関係フィックスアップをタイプ 'Profile'の エンティティ。
この画像に間違いがありますか。私が.Include( "Profile")をgetクエリに追加した場合、変更を保存してもそれ以上不満はありません。私はプロファイルのための0.1の関係の終わりを追加しようとしたが、どちらもうまくいかなかった。助言がありますか?私はスタックのオーバーフロー個人EFの専門家が説明を持っているかもしれないと思う:)
あなたの前提はすべて正しいものでした。私はまだあなたの提案を使用してフィックスアップで問題を抱えています: テストメソッドUserCanAddBlogEntryが例外をスローしました:System.InvalidOperationException:無効なリレーションシップフィックスが、タイプ 'Blog'のエンティティのナビゲーションプロパティ 'BlogEntries'で検出されました。 – mhenrixon
ええと...私は今、ちょっと困っています。 代わりに、 blog.BlogEntries.Add(エントリー)を試してみるとどうなるのか、私に知らせてください。 –
私はあなたが1つのことを除いて示唆したようにしました。私はメソッドのAddEntry(Entryエントリ)を作成しました。これは、DOM.netにエントリを追加するだけで、poco投稿ads.netのブログには推奨されています。将来はUserクラスに入るはずです。私にフィックスアップの問題を与えていることを示唆していることを2つの問題があります。あなたがコメントで示唆したことをすることは、私にnull参照例外を与えます。私は何らかの問題を作り出すのはプロキシだと思うが、真剣にそれがバグかどうかわからない。私はそれが私に教えてくれる自分自身を世話することができると言いました。とにかくこのように文脈を公開するつもりはありません。 –
mhenrixon