0

我的模型有问题并试图删除记录。我已经减少了它以尝试显示我遇到的问题

我有一个CollectedBags带有 ID 和名称的实体。

然后我有一个名为的实体BankingRun,其中包含一个列表CollectedBags

public virtual List<CollectedBags> Bags { get; set; }

该模型自动添加两者之间的关系,并在数据库中添加一列到collectedbags 以引用BankingRun。

当我想删除 BankingRun 而不影响 CollectedBags 表时,就会出现问题。CollectedBags 记录并不总是属于 BankingRun。我尝试删除记录的任何操作显然都会导致两个表之间发生冲突,但是我对实体框架的了解不足让我在没有编写一些 SQL 来物理删除 CollectedBags 中的 Banking Run id 的情况下陷入困境

public class CollectedBags
{
    public long CollectedBagsId { get; set; }
    public string Name { get; set; }
}

public class BankingRun
{
    public long BankingRunId { get; set; }

    public DateTime DateTimeVisited { get; set; }

    public virtual List<CollectedBags> Bags { get; set; }
}

然后,我尝试在使用多个 CollectedBags 创建 BankingRun 后删除它

4

1 回答 1

1

使用 Fluent API 使用以下代码:

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {

    modelBuilder.Entity<User>()
        .HasOptional(a => a.UserDetail)
        .WithOptionalDependent()
        .WillCascadeOnDelete(false);
    }

这只是一个插图,但这里重要的是.WillCascadeOnDelete(false);

基本上,它将防止当您删除一个实体时,所有其他相关的实体也会被删除。

于 2013-10-29T15:49:36.290 回答