我有以下实体:
public class MyEntity
{
public Guid? Id { get; set; }
public string Name { get; set; }
public virtual ApplicationUser User { get; set; }
}
我正试图以这种方式删除它:
var myEntity = await db.MyEntities.FindAsync(id);
if (myEntity != null)
{
db.MyEntities.Remove(myEntity);
await db.SaveChangesAsync();
}
它给了我这个错误:
An error occurred while saving entities that do not expose foreign key properties for their relationships
如果我手动.Include()
导航属性,它可以正常工作。
我的问题有两个,为什么Lazy Loading没有加载任何必要的属性才能正常工作,是否有正确的方法来删除实体而无需事先手动.Include()
每个导航属性?< / p>
答案 0 :(得分:0)
正如我所怀疑的,延迟加载不再起作用,因为dbcontext已关闭或处于关闭状态。我通过切换到每个请求的单个DbContext(存储在HttpContext.Current.Items中)修复了我的所有问题