object 具有相同键的 object 已经存在于 object statemanager 尝试使用 EF 添加休闲数据时
an object with the same key already exists in the object statemanager When trying to add the fallowing data Using EF
我在 EDM 上有如下所示的关系数据库。当我尝试提交一个新的 F_Orden 和两个现有的 F_Producto_ProductoCompra 并且它有一个 exisitng FDistributor 时,我在标题中提到了错误。这样做的正确方法是什么?请提供任何帮助,我们将不胜感激。
using (var context = new DryTypeEntities())
{
//**************************************
//Insert Order
FDistributor distributor1 = context.FDistributors.FirstOrDefault(p => p.Name == "Dverdesoto");
F_Producto_ProductoCompra productocompra1 = new F_Producto_ProductoCompra
{
FechaExpiracon = "3/13/2015",
CostoCompra = "1",
DescuentoCompra = "10%",
Id = 2
};
F_Producto_ProductoCompra productocompra2 = new F_Producto_ProductoCompra
{
FechaExpiracon = "3/13/2015",
CostoCompra = "1",
DescuentoCompra = "10%",
Id = 3
};
F_Orden orden1 = new F_Orden
{
Fecha = DateTime.Now,
Total = 12,
};
orden1.F_Producto_ProductoCompra.Add(productocompra1);
orden1.F_Producto_ProductoCompra.Add(productocompra2);
distributor1.F_Orden.Add(orden1);
context.F_Orden.AddObject(orden1);
context.FDistributors.AddObject(distributor1);
context.SaveChanges();
}
为什么要手动设置 Id 的值?
我认为 table [F_Producto_ProductoCompra] 中的标识符是 Id INT IDENTITY (1,1) PRIMARY KEY
。
因此可能会与标识符发生冲突。
可能真的存在相同ID的行。
我在 EDM 上有如下所示的关系数据库。当我尝试提交一个新的 F_Orden 和两个现有的 F_Producto_ProductoCompra 并且它有一个 exisitng FDistributor 时,我在标题中提到了错误。这样做的正确方法是什么?请提供任何帮助,我们将不胜感激。
using (var context = new DryTypeEntities())
{
//**************************************
//Insert Order
FDistributor distributor1 = context.FDistributors.FirstOrDefault(p => p.Name == "Dverdesoto");
F_Producto_ProductoCompra productocompra1 = new F_Producto_ProductoCompra
{
FechaExpiracon = "3/13/2015",
CostoCompra = "1",
DescuentoCompra = "10%",
Id = 2
};
F_Producto_ProductoCompra productocompra2 = new F_Producto_ProductoCompra
{
FechaExpiracon = "3/13/2015",
CostoCompra = "1",
DescuentoCompra = "10%",
Id = 3
};
F_Orden orden1 = new F_Orden
{
Fecha = DateTime.Now,
Total = 12,
};
orden1.F_Producto_ProductoCompra.Add(productocompra1);
orden1.F_Producto_ProductoCompra.Add(productocompra2);
distributor1.F_Orden.Add(orden1);
context.F_Orden.AddObject(orden1);
context.FDistributors.AddObject(distributor1);
context.SaveChanges();
}
为什么要手动设置 Id 的值?
我认为 table [F_Producto_ProductoCompra] 中的标识符是 Id INT IDENTITY (1,1) PRIMARY KEY
。
因此可能会与标识符发生冲突。 可能真的存在相同ID的行。