0

私にはとても奇妙です。私は2つのエンティティを持っています。SalesStatus(親) と Sale(子)。

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();

エラーが発生しました。Entity Framework は、PK 値を持つ新しいレコードを挿入しようとしました。「表の ID 列に明示的な値を挿入できません」

しかし、EntityState を EntityState.Detached または EntityState.Unchanged に変更したとき。子エンティティ (sale) は単独で正常に挿入されました (SalesStatus なし)。

私は非常に混乱してきました。

以下のケースを見つけました。しかし、私の場合はうまくいきません。 ID列を使用したEF Code Firstの親子挿入

ドットネット フレームワーク 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 に答える