Мягкое удаление .net Core и уникальные ограничения с MySqlC#

Место общения программистов C#
Anonymous
Мягкое удаление .net Core и уникальные ограничения с MySql

Сообщение Anonymous »

У меня есть модель, у которой должно быть уникальное имя. Проблема в том, что я использую мягкое удаление. Поэтому я не могу добавить аннотацию Unique к свойству name

Код: Выделить всё

public class MyModel
{
[Column("name")]
public string Name { get; set; }

[Column("deleted_at")]
public DateTime? DeletedAt { get; set; } = null;
}
Но мне нужно, чтобы «имя» было уникальным для записей, которые были удалены с = null;
Я пробовал

Код: Выделить всё

modelBuilder.Entity()
.HasIndex(m => d.Name)
.IsUnique()
.HasDatabaseName("IX_MyModel_Name")
.HasFilter("[deleted_at] IS NULL");
и

Код: Выделить всё

modelBuilder.Entity()
.HasIndex(d => new { d.Name, d.DeletedAt })
.IsUnique()
.HasDatabaseName("IX_MyModel_Name_DeletedAt");
но оба не сработали
Обратите внимание, что я использую MySql, а не MS SQL

Подробнее здесь: https://stackoverflow.com/questions/790 ... with-mysql

Вернуться в «C#»