我来自NHibernate,我对Entity Framework处理链接实体感到困惑。
我有一个名为Post的模型。每个帖子都有一个linke实体帐户,它告诉哪个帐户创建了帖子。
当我创建帖子时,我使用以下代码:
var post = new Post();
post.Account = GetAccount();
db.Posts.Add(post);
db.SaveChanges();
GetAccount()所做的是根据cookie从数据库中获取当前用户的帐户。它还为当前请求(asp.net)缓存它,因此不必多次获取它。
现在,这会导致为我保存的每个帖子插入一个新帐户(相同但有新ID)。我已经实现了Equals和GetHashCode for Account,这对于NHibernate已经足够了,但对于Entity Framework却没有,对吗?
我错过了什么?
答案 0 :(得分:1)
您需要确保在执行此操作时使用相同的DataContext类,因为它不会将其注册为现有实体。因此,每次保存时,为什么要获取复制的帐户。
*请参阅有关初始问题的评论。