Entity Framework에 대해 Code First example으로 방금 놀았으며 이해가 안되는 문제가 발생했습니다. POCO 개체와 데이터베이스 컨텍스트가 예에서와 동일하고 있다고 가정 내 응용 프로그램의 진입 점에 다음 코드를 가지고 :다른 개체에서 동일한 개체를 여러 번 참조하는 Entity Framework
var blog = new Blog { Name = "My Blog" };
var post = new Post {Title = "A Random Post", Blog = blog};
blog.Posts = new List<Post> {post};
db.Blogs.Add(blog);
var blog2 = new Blog {Name = "Another Blog", Posts = new List<Post> {post}};
db.Blogs.Add(blog2);
db.SaveChanges();
// Display all Blogs from the database
var query = from b in db.Blogs
orderby b.Name
select b;
Console.WriteLine("All blogs in the database:");
foreach (var item in query)
{
Console.WriteLine(item.Name);
foreach (var p in item.Posts)
{
Console.WriteLine(p.Title);
}
}
왜 모두 블로그에서 참조하는 게시물, 만 나타 납니까을 두 번째 블로그에? 데이터베이스에 무언가를 추가 할 때마다 SaveChanges
번으로 전화해야합니까?
절대적으로 맞습니다! –
좋은 답변입니다. 나는 내 실수를 이해합니다. Post 모델에서 단일 블로그 모델에 대한 참조를 가짐으로써 EF는 하나의 블로그에만 게시물을 포함해야 함을 이해합니다. Tim B가 지적한 것처럼 다 대다 관계를 원한다면 대신 Blog 객체 컬렉션을 만들어야합니다. 그런 다음 각 게시물을 원하는 수의 블로그에 추가 할 수 있습니다. –