实体框架一遍又一遍地保存相同的链接实体

时间:2011-07-25 23:11:21

标签: c# asp.net entity-framework

我来自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却没有,对吗?

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您需要确保在执行此操作时使用相同的DataContext类,因为它不会将其注册为现有实体。因此,每次保存时,为什么要获取复制的帐户。

*请参阅有关初始问题的评论。