【发布时间】:2013-05-10 15:35:01
【问题描述】:
我与外键有一对一的关系,但由于某种原因没有启用Cascade Delete。示例代码如下。
public class AppRegistration
{
public int AppRegistrationId { get; set; }
[Required]
[StringLength(50)]
[Display(Name = "Username")]
public string UserName { get; set; }
[Required]
[StringLength(100)]
public string Password { get; set; }
[StringLength(20)]
public string StudentOrAgent { get; set; }
// navigation properties
public virtual AppStatus AppStatus { get; set; }
public virtual Agreement Agreement { get; set; }
public virtual AnotherTable AnotherTable { get; set; }
}
下面是带外键的依赖表。
public class Agreement
{
[Key]
[ForeignKey("AppRegistration")]
public int AppRegistrationId { get; set; }
public DateTime DateAgreed { get; set; }
public virtual AppRegistration AppRegistration { get; set; }
}
当我尝试从生成的AppRegistrations 表中删除一个条目时,我遇到了引用约束冲突。
我尝试将[Required] 放在依赖表中的导航属性上,但它没有做任何事情-Update-Database 命令显示No pending code-based migrations. 消息。有任何想法吗?谢谢。
更新: 我收到以下错误消息:
The DELETE statement conflicted with the REFERENCE constraint "FK_dbo.AppStatus_dbo.AppRegistrations_AppRegistrationId". The conflict occurred in database "MVCapp", table "dbo.AppStatus", column 'AppRegistrationId'.
【问题讨论】:
标签: entity-framework ef-code-first