我在C#
中使用Entity Framework 6.1。我在函数中创建了一个上下文,并使用泛型参数调用委托并将上下文作为另一个传递:
public void Save<NativeType>(Item item,
Func<NativeType, DatabaseMappingContext, bool> saveDel)
{
using(var db = new DatabaseMappingContext())
{
saveDel(item, db);
DbSet<NativeType> dbSet = db.DbSets[nativeType].Cast<NativeType>();
dbSet.Add(item);
db.SaveChanges();
}
}
在代表内:
(Item item, DatabaseMappingContext db) =>
{
db.InnerItems.Attach(item.InnerItem);
return true;
}
我面临的问题是在db.InnerItems
上下文中,在InnerItem
调用之后插入了空Attach()
个对象。我认为它必须在将泛型与委托和上下文生命周期结合使用时做一些事情,但我不确定。有什么想法吗?我做错了吗?