当我尝试使用相同的 objectContext 插入数据时遇到了一些麻烦。
我的问题是,实体读取我的代码的顺序不是我“添加”它的顺序。
例子:
EntityAB将EntityA的 PK 作为 FK。1-N 关系。
objContext.DbSet.Add(EntityA);
objContext.DbSet.Add(EntityAB);
objContext.SaveChanges();
代码到达时的错误消息SaveChanges()
:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_EntityAB_EntityA". The conflict occurred in database "dbTest", table "dbo.EntityA", column 'IdEntityA'.
The statement has been terminated.
所以,我的实体框架在读objContext.DbSet.Add(EntityAB);
之前 objContext.DbSet.Add(EntityA);
如果我将代码更改为:
objContext.DbSet.Add(EntityA);
objContext.SaveChanges();
objContext.DbSet.Add(EntityAB);
objContext.SaveChanges();
有用。
但我不能。由于审计,需要一次性完成。 SaveChanges()
我的问题是,
我可以按照添加的顺序阅读代码吗?