У меня сначала есть таблица, сгенерированная с помощью основного кода ef, и мне нужно назначить ограничение, в котором все флаги в записях с определенным идентификатором первичного ключа должны быть ложными, за исключением одного, который должен быть истинным, поэтому у него всегда будет один запись с установленным флагом true.
например, на рисунке ниже, я ожидаю, что только один элемент будет иметь значение isAccountHolder в true, и если в таблице только одна запись, то для свойства isAccountHolder должно быть установлено значение true.
Мне интересно, может ли это быть сделано с использованием подхода «сначала код». Я пробовал следующее, но это не похоже на работу.
builder
.HasIndex(p => new {p.AccountHolderCustomerId, p.IsAccountHolder})
.HasFilter("[IsAccountHolder] = 1");
![enter image description here](https://i.stack.imgur.com/PkJCt.png)