當我嘗試將實體插入到與已存在於數據庫中的另一個實體具有關聯性的數據庫中並且該實體框架中已插入關聯實體時。這會導致關聯實體的重複條目。在Repository類插入與關聯的實體會導致重複關聯
插入方法
public T Insert(T entity)
{
DbSet.Add(entity);
Context.SaveChanges();
return entity;
}
通話插入方法
這發生在我的代碼某處。我將它保存到我的會話變量中。
using(var repository = new Repository<User>())
{
user = repository.GetById(id);
}
然後其他一些地方:
Post post = new Post{ User = user, Content ="oO" };
using (var rep = new Repository<Post>())
{
rep.Insert(post);
}
我解決了下面這個片段重複插入。有沒有比投射每個實體類型並重新連接相關實體更好的方法?
if (entity is Post)
{
Post post = (Post)(object)entity;
Context.Users.Attach(post.User);
}
向我們顯示您的代碼。 –
我同意,這需要代碼。但是從我的頭頂開始,我會說你從不同的對象上下文中添加了現有的相關實體... –
向我們展示一個簡單但完整的工作示例。 – Silvermind