我有具有导航属性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);
猜猜是什么?
失败等于真!
唯一的问题是为什么???
答案 0 :(得分:0)
通过更改实体状态,您只需更改是否/如何从上下文跟踪对象。但是然后查询ctx.CvssVectors,你将进入仍然包含数据的数据库。
想要删除数据或您的方案是什么?