在同一个objectContext中插入多条记录



当我尝试使用相同的objectContext插入数据时,我遇到了一些麻烦。

我的问题是,实体读取我的代码的顺序不是我"添加"它的顺序。

的例子:

EntityAB具有EntityA的PK作为FK。其它的关系。

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(EntityA); 之前读取objContext.DbSet.Add(EntityAB);

如果我把代码改成:

objContext.DbSet.Add(EntityA);
objContext.SaveChanges();
objContext.DbSet.Add(EntityAB);
objContext.SaveChanges();


但是我不能。由于审计,需要在一个 SaveChanges()中完成。

我的问题是,
我可以强制SAVECHANGES()按照我添加的顺序读取代码吗?

您的上下文是如何设置的?

我认为下面的方法可能有用。

在上下文中

public DbSet<EntityA> EntityAs { get; set; }
public DbSet<EntityAB EntityABs { get; set; }

然后在你的其他代码

objContext.EntityAs.Add(EntityA);
objContext.EntityAB.Add(EntityAB);
objContext.SaveChanges();

如果这不起作用,我将探索

objContext.local   

相关内容

  • 没有找到相关文章

最新更新