我有一个实体,它的主关键字int设置为storegeneratedpattern = none,因此我们提供了id客户端。具有storegeneratedpattern = none的实体框架4实体在保存时不会更新外键
此实体具有子实体,通过与导航和外键id的关联引用它。
如果我创建一个新的父实体并添加一个子实体,然后设置父实体的主键并保存,那么子实体的外键修复发生在保存之后并且不会持久化到数据库。
如
engine = new Engine();
part = new Part();
engine.Parts.Add(part);
engine.Id = 6;
engineRepository.Save(engine);
的保存很简单
Context.Engines.AddObject(entity);
Context.SaveChanges();
保存后 “部分” 将有一个外键 “ENGINEID”= 6,但在数据库中这将是 “ENGINEID” = 0,即看起来修复发生在保存之后。
我在这里错过了什么?如果引擎的存储生成模式是身份认证,则一切正常。
这是一种可能性,但它意味着整个汽车修复EF的好处被否定。实际上,我们有一个巨大的图表,必须走整个过程来设置所有适当的ID。我提供了我们最终在下面使用的答案。 –