我有这两个实体
class AUT
{
public Guid ID { get; set; }
public string Name { get; set; }
public Engineer Engineer { get; set; }
}
class InstallationSetup
{
public virtual AUT ApplicationUnderTesting { get; set; }
public Guid ID { get; set; }
// Loads of properties etc
}
class Engineer
{
public Guid ID { get; set; }
public string Name { get; set; }
}
使用代码优先和一些数据注释,这些实体创建了一个数据库。我正在使用 EF 5,当我删除一个应用程序时,它应该只删除它自己和任何引用它的 InstallationSetup。它不应该删除工程师。但是,当我尝试删除它时,出现错误:
DELETE 语句与 REFERENCE 约束“FK_dbo.InstallationSetups_dbo.AUTs_ApplicationUnderTesting_ID”冲突。冲突发生在数据库“UXLab”、表“dbo.InstallationSetups”、列“ApplicationUnderTesting_ID”中。该语句已终止。
所以,我猜是因为有另一个表的条目依赖于 AUT 存在,通过删除 AUT,您将留下带有空外键的 InstallationSetup,因此是一个损坏的行。
我应该能够(最好不使用 Fluent API)告诉实体框架任何引用 AUT 的东西也应该被删除?这就是我想要实现的。