C# 尝试使用EF添加休闲数据时,对象状态管理器中已存在具有相同键的对象
我在EDM上有如下所示的关系数据库。当我试图提交一份包含两个现有F_Producto_ProductoCompra的新F_Orden,并且该F_ProductoCompra有一个现有的FDDistributor时,我在标题上看到了错误提示。正确的方法是什么?请帮忙,我会非常感激的C# 尝试使用EF添加休闲数据时,对象状态管理器中已存在具有相同键的对象,c#,sql,linq,entity-framework,linq-to-entities,C#,Sql,Linq,Entity Framework,Linq To Entities,我在EDM上有如下所示的关系数据库。当我试图提交一份包含两个现有F_Producto_ProductoCompra的新F_Orden,并且该F_ProductoCompra有一个现有的FDDistributor时,我在标题上看到了错误提示。正确的方法是什么?请帮忙,我会非常感激的 using (var context = new DryTypeEntities()) { //**************************************
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的值 我相信表[F_Producto_ProductoCompra]中的标识符是
Id INT-IDENTITY(1,1)主键
因此可能与标识符发生冲突。
可能确实存在具有相同Id的行。假设我在数据库中已经有一个Id为2的F_Producto,Nombre=“Aspirine”。我如何将F_Producto_Producto Compra与我的F_Producto联系起来。因为它继承了FPProducto?