添加行时实体框架发生冲突

时间:2013-11-27 13:25:35

标签: 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, "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;

此代码运行,我显示我的记录treeList。在添加新行时

 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();

我收到错误。

1 个答案:

答案 0 :(得分:1)

听起来就像是在尝试使用已经存在的外键添加记录,或者尝试在de identifier列中添加值,而标识符将自动由数据库填充。

您是否正确设置了两侧的钥匙? 你能发布出错的代码吗?