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

本文关键字:实体 一遍 链接 框架 保存 | 更新日期: 2023-09-27 18:03:44

我来自NHibernate,我对实体框架对链接实体的处理很困惑。

我有一个叫Post的模型。每个帖子都有一个链接实体Account,它告诉哪个帐户创建了该帖子。

当我创建一个帖子,我使用以下代码:

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

GetAccount()所做的是基于cookie从数据库获取当前用户的帐户。它也缓存当前请求(asp.net),所以它不需要多次获取。

现在,这将导致为我保存的每个帖子插入一个新帐户(相同但具有新ID)。我已经实现了等于和GetHashCode帐户这将是足够的NHibernate,但不为实体框架,对吧?

我错过了什么?

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

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