Мне нужна помощь с EF Core в режиме первого кода с SQLite.
Я пытаюсь сделать 2 столбца уникальными, но один столбец может быть нулевым (вместо этого я мог бы сделать ноль).Проблема в том, что уникальность не работает должным образом, когда второй столбец имеет нулевое значение.
Я делаю уникальное, как это:
modelBuilder.Entity<My_Table>().HasIndex(t => new { t.A_Id, t.B_Id }).IsUnique(true);
Пример ввода:
(A и B ниже: A_Id и B_Id)
+-----------------------------------+
| A | B | should add | is adding |
+-----------------------------------+
| 1 | 1 | yes | yes |
| 1 | 2 | yes | yes |
| 2 | 1 | yes | yes |
| 2 | 2 | yes | yes |
| | | | |
| 1 | 1 | no | no | // (Perfect! It's duplicated)
| | | | |
| 1 | null | yes | yes |
| 2 | null | yes | yes |
| | | | |
| 1 | null | no | yes | // (Problem here!)
+-----------------------------------+
Возможно, проблема в OnModelCreating()
выше, но здесь остальная часть моего кода:
public class My_Table
{
[Key] public int Id { get; set; }
[Required] public int? A_Id { get; set; }
[ForeignKey("A_Id")] public virtual Class_A A { get; set; }
public int? B_Id { get; set; }
[ForeignKey("B_Id")] public virtual Class_B B { get; set; }
}
Что я могу сделать, чтобы решить эту проблему?Спасибо!