我的数据库设置了一个Entity表,它具有Ref_Type导航属性(以及一个引用TypeID的FK)。类型表,有一个Ref_Department,相同的FK设置。最后,部门表有一个Ref_Locale和相同的FK设置。延迟加载和多个引用
我将实体保存在一个列表中,这是一个单身人士的财产。它创建如下;
private Singleton()
{
using (Database db = new Database())
{
List<Entities> EntityList = db.Entities.ToList<Entities>();
}
}
这很好,导航属性全部加载,我可以访问它们中的任何一个。 我更新实体条目时出现问题,如下所示;
public void UpdateEntity(Entities oldEnt, Entities newEnt)
{
using (Database db = new Database())
{
Entities ent = db.Entities.Where(e => e.EntityName == oldEnt.EntityName).FirstOrDefault();
ent.EntityName = newEnt.EntityName;
ent.EntityEmail = newEnt.EntityEmail;
...
ent.EntityType_ID = newEnt.EntityType_ID;
db.SaveChanges();
}
RefreshEntities();
}
public void RefreshEntities()
{
using (Database db = new Database())
{
db.Configuration.LazyLoadingEnabled = false;
db.SaveChanges();
EntityList = db.Entities.Include("Ref_EntityType").Include("Ref_EntityPosition").ToList<Entities>();
}
}
Ref_Entity被正确加载,但随后内Ref_Entity,Ref_Department只是空。我试过在我的构造函数中使用db.Entities.ToList<Entities>();
,没有骰子。正如你所看到的,我也尝试过关闭LazyLoading(我想我可能需要调用SaveChanges()来实际应用该标志)。我也尝试过。包括(“Ref_Department”),但它只是抱怨它不存在的实体,这是有道理的。
的纽恩特,我传递给UpdateEntity方法没有Ref_Type初始化,我的假设是什么在UpdateEntity方法没有改变只会保持不变下工作......
所以我现在对于发生了什么事以及如何解决这个问题有点不知所措。如果有人能够帮助解释我出错的地方,或者给我一些关于如何修复我的代码以使其工作的指示,那会很好。
您是否在RefreshEntities()方法中启用延迟加载时获取它 – 2013-02-20 04:14:10
默认情况下,延迟加载处于打开状态......但是,我刚刚找到了解决方案并将很快发布。 – Trent 2013-02-20 06:38:08