В настоящее время я работаю над многопользовательским приложением на основе столбцов.
Я добавил tenantId для каждого объекта с базовым классом и использовал фильтры запросов, которые идеально соответствуют моим потребностям.
Я также переопределил метод savechanges, чтобы заполнить свойство tenantid для добавленных объектов с помощью средства отслеживания изменений.
Но теперь я застрял с обновлением и удалением.
Насколько я знаю, ef генерирует предложение where только с первичным ключом, что для меня очень небезопасно, потому что я работаю в среде API с большим количеством объектов присоединения / отсоединения и вместо этого написал множество entity.state = updated сначала запросить, чтобы улучшить производительность.
Мой вопрос: как добавить предикат в оператор обновления / удаления ядра ef?
Я знаю, что могу:
1. Сначала запрос (и я уверен, что вы мне это порекомендуете)
2. Создайте tenantid как часть составного ключа, но на самом деле было бы трудно реорганизовать весь мой код как add / find / etc. Методы требуют полных первичных ключей.
Буду очень признателен всем, кто знает, как это вызвать!