0

这对我来说很奇怪。我有两个实体。销售状态(父母)和销售(儿童)。

public class SalesStatus
{
    [Key]
    public int SalesStatusID { get; set; } /* this is identity column*/

    public string Status { get; set; }

    public virtual List<Sale> Sales { get; set; }
}

public class Sale
{
    [Key]
    public int SalesID { get; set; } /* this is identity column*/

    //etc
}




SalesContext db = new SalesContext();

var ss = new SalesStatus
{
    Status = "INQ",

        Sales = new List<Sale>()
};

ss.Sales.Add(sale);
db.SalesStatus.Add(ss);
db.Entry(ss).State = EntityState.Added;
db.SaveChanges();

我有一个错误。实体框架尝试插入具有 PK 值的新记录。“无法为表中的标识列插入显式值”

但是当我将 EntityState 更改为 EntityState.Detached 或 EntityState.Unchanged 时。子实体(销售)单独成功插入。(没有销售状态)

我一直很困惑。

我在下面找到了一些案例。但这对我的情况不起作用。 带有标识列的 EF Code First 父子插入

我使用 dotnet 框架 4.0 / 实体框架 4.1

4

1 回答 1

0

尝试更改主键名称(SalesID 为 SaleID)。可能是EF配置外键错误,

public class Sale
{
    [Key]
    public int SaleID { get; set; } /* this is identity column*/

    //etc
}
于 2013-01-02T11:57:17.143 回答