实体框架1到0的关系

时间:2013-08-23 04:29:29

标签: c# asp.net-mvc-3 entity-framework

技术: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(); 

1 个答案:

答案 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设置为您想要的值,它会自动生成两个实体之间的关系