代码之家  ›  专栏  ›  技术社区  ›  chuckd

在EF Core中,我可以在两列上创建一个唯一的约束吗?其中一列是条件布尔值?

  •  0
  • chuckd  · 技术社区  · 4 年前

    我想在一行上创建一个唯一的条件,其中只有一个可以存在。一列是特定的字符串,另一列是true的布尔值

    示例2列

    1. TransferGroup(字符串)='123ABC'
    2. IsStripeFeeRemoved(布尔值)=true

    因此,如果插入新行,TransferGroup为“123ABC”,并且IsStripeFeeRemoved为true,则我得到 DbUpdateConcurrencyException或其他类型的异常,我可以在保存之前捕获并更正。 如果IsStripeFeeRemoved为false,则保存为ok。

    我该怎么做?

    我在下面尝试过,但语法不正确

    modelBuilder.Entity<Transfer>()
      .HasIndex(p => new { p.TransferGroup, p.IsStripeFeeRemoved == true })
      .IsUnique();
    
    0 回复  |  直到 4 年前