我理解错误消息的内容。我只是不确定它为什么这么说。我的表有一个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
任何想法为什么不能保存?
答案 0 :(得分:2)
[ForeignKey] attibutes指向Dugout和ConferenceDetails的错误属性。应该是ForeignKey(“DugoutId”)和ForeignKey(“ConferenceDetailsId”)。
答案 1 :(得分:1)
您是先使用代码还是自动生成代码? 根据您的操作,模型和数据库之间可能存在不匹配。您可以尝试使用分析器确切地知道EF正在尝试做什么。 此thread也可以为您提供帮助。