2011-07-25 2 views
1

저는 NHibernate에서 왔고 Entity Framework에서 링크 된 엔티티를 처리하는 것에 대해 매우 혼란스러워합니다.엔티티 프레임 워크는 동일한 링크 된 엔티티를 반복해서 저장합니다.

나는 Post라는 모델이 있습니다. 각 게시물에는 어느 계정이 게시물을 작성했는지 알려주는 linke 엔티티 계정이 있습니다.() 쿠키를 기반으로 데이터베이스에서 현재 사용자의 계정을지고 수행

var post = new Post(); 
post.Account = GetAccount(); 
db.Posts.Add(post); 
db.SaveChanges(); 

무엇 GetAccount : 나는 게시물을 작성할 때

, 나는 다음과 같은 코드를 사용합니다. 또한 현재 요청 (asp.net)에 대해이를 캐시하여 여러 번 가져올 필요가 없습니다.

이제는 저장 한 각 게시물에 대해 새 계정 (동일하지만 새 ID 포함)이 삽입됩니다. NHibernate에 충분했을 계정에 대해 Equals 및 GetHashCode를 구현했지만 Entity Framework에는 적합하지 않습니까?

무엇이 누락 되었습니까?

+2

GetAccount는 게시물을 저장하는 것과 동일한 dbContext를 사용합니까? –

+0

@feanz 아, 맞아. 그들은하지 않았으며 지금은 그들이 할 때 작동합니다. 답변을 게시하면 나는 그것을 표시 할 것입니다. –

답변

1

기존 엔티티로 등록하지 않으므로이 작업을 수행 할 때 동일한 DataContext 클래스를 사용해야합니다. 따라서 저장 할 때마다 복제 된 계정을 얻는 이유는 무엇입니까?

* 초기 질문에 대한 의견보기

관련 문제