C# 添加行时实体框架冲突

C# 添加行时实体框架冲突,c#,sql,linq,entity-framework,entity,C#,Sql,Linq,Entity Framework,Entity,我使用的是实体框架代码优先的方法 我可以添加记录、更新记录,但在添加新记录时收到此错误消息 "Conflicting changes to the role 'SaleCellBase_column_Target' of the relationship 'Sale.Classes.SaleCellBase_column' have been detected." 我怎样才能解决这个问题 I have tree class; SaleRow sale = new SaleRow (sheet

我使用的是实体框架代码优先的方法

我可以添加记录、更新记录,但在添加新记录时收到此错误消息

"Conflicting changes to the role 'SaleCellBase_column_Target' of the relationship 'Sale.Classes.SaleCellBase_column' have been detected."
我怎样才能解决这个问题

I have tree class;

SaleRow sale = new SaleRow (sheet, "Sales", "A-sale", Guid.NewGuid(), Guid.Empty);
sheet.rows.Add(sale);
SaleColumn col = new SaleColumn(sheet, i);
sheet.columns.Add(col);
dbContext.Sale.Add(row);
dbContext.SaveChanges();


 for (int j = 0; j < count; j++)
 {
     SaleCell cell = new SaleCell(row, sheet.columns[j], demoSheet);

     sheet.cells.Add(cell);
     row.cells.Add(cell);
      sheet.columns[j].cells.Add(cell);
 }
 dbContext.SaveChanges();
 treeList1.DataSource = sheet.rows;
我有树类;
SaleRow sale=新SaleRow(工作表,“销售”、“A-sale”,Guid.NewGuid(),Guid.Empty);
表.行.添加(销售);
SaleColumn=新SaleColumn(第i页);
表.列.添加(列);
dbContext.Sale.Add(行);
dbContext.SaveChanges();
对于(int j=0;j
这段代码运行后,我将显示我的记录树列表。添加新行时

 saleRow=sheet.rows.ToList();

 for (int k = 0; k < sheet.rows.Count; k++)
 {
 SaleRow saleRowControl = con.SaleRow.FirstOrDefault(p => p.hierId==dataRow.hierId);

 if(saleRowControl==null)
    dbContext.SaleRow.Add(saleRow[k]);
 }
 dbContext.SaveChanges();
saleRow=sheet.rows.ToList();
对于(int k=0;kp.hierId==dataRow.hierId);
if(saleRowControl==null)
dbContext.SaleRow.Add(SaleRow[k]);
}
dbContext.SaveChanges();

出现错误。

听起来好像您正试图添加一个包含allready存在的外键的记录,或者试图在de标识符列中添加一个值,而标识符将自动由数据库填充

你两边的钥匙都放好了吗?
您可以发布出错的代码吗?

听起来好像您正试图添加一个包含allready存在的外键的记录,或者试图在de identifier列中添加一个值,而标识符将由数据库自动填充

你两边的钥匙都放好了吗?
你能发布出错的代码吗?

你能给我们看一些代码吗?是的,我展示了一些代码。你有什么想法吗?你能给我们看一些代码吗?是的,我展示了一些代码。你有什么想法吗?没错,但我只有36个声誉,所以我还不能对一个问题发表评论$salesRow[k]是否为SaleRow类型?是,List salesRow=new List();调试此代码时,saleRow[k]具有值。但是dbContext.SaleRow.Add(SaleRow[k)不起作用。你应该检查你的外键。我想该记录在上下文中不存在?如果你用相同的值手动将其添加到数据库中,是否起作用?这是真的,但我只有36个声誉,所以我还不允许对一个问题发表评论:$Is SaleRow[k]SaleRow类型?是的,List SaleRow=new List();当我调试这段代码时,SaleRow[k]有值。但是dbContext.SaleRow.Add(SaleRow[k)不起作用。您应该检查外键。我想该记录在上下文中不存在?如果您手动将其添加到数据库中,并且使用相同的值,是否起作用?