나는 이것이 내가 왜 상속 문제에 대한 Alex의 제안을 시도하기 위해 블로그 항목을 추가하기 위해 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'유형의 엔티티
이 사진에 어떤 문제가 있는지 잘 모릅니다. get .Include ("Profile")를 get 쿼리에 추가하면 변경 사항을 저장하지 않아 더 이상 불평하지 않습니다. 프로필에 대해 0.1의 관계 끝을 추가하려고했지만 어느 쪽도 효과가 없습니다. 어떤 제안? 나는 스택 오버플로가 개인 EF 전문가가 설명을 가지고 있을지도 모른다고 생각한다. :)
귀하의 모든 가정은 옳았습니다. 그러나 여전히 제안을 사용하여 픽스 업에 문제가 발생합니다. 테스트 메소드 UserCanAddBlogEntry가 예외를 throw했습니다. System.InvalidOperationException : 'BlogEntries'유형의 엔터티 탐색 속성 'BlogEntries'에서 유효하지 않은 관계 픽스 업이 감지되었습니다. – mhenrixon
음 ... 나는 지금 당황스러워. 대신 entry.Blog = blog blog.BlogEntries.Add (입력)을 시도하면 어떻게되는지 알려주세요. –
나는 한 가지를 제외하고 제안했다. 내가 방법을 AddEntry (항목 항목) 그냥 ILIST poco 게시물 ado.net 블로그에서 권장하는 항목을 추가 할 만들었습니다. 나중에 User 클래스에 있어야합니다. 두 가지 문제가 있습니다. 문제 해결을 제안하는 것이 좋습니다. 코멘트에서 제안한 것을 수행하면 nullreference 예외가 발생합니다. 나는 그것이 일종의 문제를 만드는 프록시라고 생각하지만 심각하게도 그것이 버그인지는 모르겠다. 나는 그것이 나에게 말해주는 나 자신을 돌볼 수 있다고 말했다. 나는 어쨌든 이런 식으로 문맥을 폭로하지 않을 것이다. –
mhenrixon