从上下文中删除所有对象后,导航属性不起作用

时间:2011-11-25 14:15:14

标签: c# entity-framework

我有具有导航属性CvssVector的Vulner实体。 LazyLoad已启用。 CvssVector具有主键列VulnerId(非标识)。

var vulner = new Vulner { CvssVector == cvssVector};
context.Vulners.Add(vulner);
context.SaveChanges();
savedVulnerId = vulner.Id;
var entries = context.ObjectStateManager.GetObjectStateEntries(~EntityState.Detached).ToList();
entries.ForEach(e => e.ChangeState(EntityState.Detached)); // remove all entry states

稍后对于相同的上下文我要求保存的漏洞

var vulner = context.Vulners.First( v => v == savedVulnerId);
var fail = vulner.Cvss == null && ctx.CvssVectors.Any(x => x.VulnerId == vulner.Id);
猜猜是什么? 失败等于真! 唯一的问题是为什么???

1 个答案:

答案 0 :(得分:0)

通过更改实体状态,您只需更改是否/如何从上下文跟踪对象。但是然后查询ctx.CvssVectors,你将进入仍然包含数据的数据库。

想要删除数据或您的方案是什么?