【发布时间】:2015-11-19 20:54:32
【问题描述】:
在此应用程序的 Code First 中,我将外键定义为可为空的。但是,当我尝试添加没有该键的记录时,我仍然收到外键约束错误:
INSERT 语句与 FOREIGN KEY 约束“FK_dbo.RequestReview_dbo.CustomForm_ReviewFormId”冲突。数据库\"Mkp\",表\"dbo.CustomForm\",列'CustomFormId'发生冲突。\r\n语句已终止。
我应该如何定义关系以便不强制执行键约束?
我的代码优先模型定义如下字段:
[Key, ForeignKey("Resource"), DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid RequestReviewId { get; set; } // My Primary Key
public virtual Resource Resource { get; set; }
public Guid? ReviewFormId { get; set; } // Foreign Key
[ForeignKey("ReviewFormId")]
public CustomForm ReviewForm { get; set; }
(我确实尝试过搜索,但我不确定我搜索的术语是否正确。)
编辑/更新:
如果我删除 ForeignKey 标记,我仍然会尝试创建关系进行迁移,但这次称为ReviewForm_CustomFormId。我怎样才能避免这种情况?
模型的更新版本:
[Key, ForeignKey("Resource"), DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid RequestReviewId { get; set; } // My Primary Key
public virtual Resource Resource { get; set; }
public Guid? ReviewFormId { get; set; } // Foreign Key
public CustomForm ReviewForm { get; set; }
【问题讨论】:
标签: entity-framework ef-code-first