Entity framework 一对一的级联删除不起作用
我首先使用EF和代码 我有这样一个事务类:Entity framework 一对一的级联删除不起作用,entity-framework,code-first,Entity Framework,Code First,我首先使用EF和代码 我有这样一个事务类: [Table("Transacties")] public class Transactie { [Key] [Column(Order = 1)] [StringLength(128)] public string KIMTransactieCode { get; set; } [Column(Order = 2)] [StringLe
[Table("Transacties")]
public class Transactie
{
[Key]
[Column(Order = 1)]
[StringLength(128)]
public string KIMTransactieCode { get; set; }
[Column(Order = 2)]
[StringLength(128)]
public string BovenliggendeKIMTransactieCode { get; set; }
[ForeignKey("BovenliggendeKIMTransactieCode")]
public Transactie BovenLiggendeTransactie { get; set; }
public DateTime? DatumLaatstBekeken { get; set; }
public bool? IsZichtbaar { get; set; }
public DateTime? IsZichtbaarGewijzigdOp { get; set; }
public OpnameInfo OpnameInfo { get; set; }
}
关系如下:
事务可以具有子事务,当存在子事务时,需要引用父事务“BovenliggendekimTransacticeCode”。这在一个类/表中定义完整
它主要使用数据注释
我想对这个类进行级联删除:当父事务被删除时,所有相关的子事务也必须被删除
我尝试按如下方式调用级联删除:
var transactions = mailboxDataContext.Transacties
.Where(tr => tr.BovenliggendeKIMTransactieCode == null &&
tr.IsZichtbaar.HasValue &&
!tr.IsZichtbaar.Value &&
tr.IsZichtbaarGewijzigdOp.HasValue &&
tr.IsZichtbaarGewijzigdOp.Value < selectionDateTime)
.ToList(); // Materialize
if (transactions.Count > 0)
{
foreach (var transaction in transactions)
{
mailboxDataContext.SetDeleted(transaction);
}
mailboxDataContext.SaveChanges();
}
但我得到:
DELETE语句与同一个表引用冲突
限制
\FK_dbo.Transactions_dbo.Transactions_BovenligendekimTransacticeCode\。
数据库\PROGISKIM\u邮箱\表中发生冲突
\dbo.Transacties\,列“BovenliggendekimTransacticeCode”。\r\n
声明已终止
如何解决这个问题
更新:
当我尝试删除SSMS中的主行时,我也会遇到此异常