繁体   English   中英

实体框架“无法为标识列插入显式值”错误

[英]Entity Framework 'Cannot insert explicit value for identity column' error

我理解错误消息在说什么。 我只是不确定为什么要这么说。 我的表具有一个Identity,并将其设置为自动递增,但是当我去保存一个实体时,出现以下错误:

当IDENTITY_INSERT设置为OFF时,无法为表“会议”中的标识列插入显式值。

我使用的是代码优先的方法,我的Conference实体看起来像这样:

public class Conference
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public int DugoutId { get; set; }
    public int ConferenceDetailsId { get; set; }

    [ForeignKey("Id")]
    public virtual Dugout Dugout { get; set; }
    [ForeignKey("Id")]
    public virtual ConferenceDetail ConferenceDetail { get; set; }
}

当我要保存会议时,值如下:

Id: 0
DugoutId: 15
ConferenceDetailsId: 1
Dugout: null
ConferenceDetail: null

有什么想法为什么不能节省?

[ForeignKey]服装指向Dugout和ConferenceDetails的错误属性。 应该是ForeignKey(“ DugoutId”)和ForeignKey(“ ConferenceDetailsId”)。

您是先使用代码还是正在自动生成代码? 根据您的操作,模型和数据库之间可能会不匹配。 您可以尝试使用探查器确切地知道EF试图做什么。 线程也可以为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM