技术:ASP.NET MVC3,实体框架4,多层应用
我有两个0到1关系的表。 duplicata可以有0个或1个pagamento,而pagamento只有一个duplicata。 Link
Duplicata的行在我的数据库中保存,当我创建一个新的Pagameto实体并添加到一个Dupliacata时会出现这个错误:
A referential integrity constraint violation occurred: The property values that define the referential constraints are not consistent between principal and dependent objects in the relationship.
图像Bellow显示具有一个Pagamento的实体Duplicata。 Link
带有错误的代码:
context.Duplicata.Attach(duplicata);
context.ObjectStateManager.ChangeObjectState(duplicata, EntityState.Modified);
context.SaveChanges();
答案 0 :(得分:0)
是的,但是附件的porpouse没有将元素添加到duplicata bu以进入上下文中的分离实体。如果要创建新的重复数据,只需创建一个新副本。喜欢
// just for testing NO magic numbers!
var pagamentoId = 1;
var duplicata = new Duplicata();
duplicata.PAGAMENTO_ID = pagamentoId;
duplicata.VALOR = 1000;
duplicata.CLIENTE_ID = 23;
// add the rest of properties
// then...
context.AddObject("Duplicatas", duplicata);
context.SaveChanges();
注意我在addobject中使用了“Duplicatas”,因为我认为这是Duplicata集的名称(set表示它是Duplicata的集合,你在EDMX文件中设置了该名称)。
通过将pagamento_id设置为您想要的值,它会自动生成两个实体之间的关系