Определить связь с фильтром? - PullRequest
3 голосов
/ 07 января 2011

Есть ли способ создать ассоциацию в платформе сущностей, которая всегда применяет фильтр "где"?

Вот пример: Предположим, у меня есть база данных, которая использует "мягкие" удаления - так что есть«удаленный» столбец в каждой таблице.

Так что, если у меня есть объект Customer, связанный с Address (1: 0..n), я бы хотел, чтобы свойство навигации по адресам всегда фильтровалось вфлажок удален, так что если я перейду к Customer.Addresses, коллекция будет возвращать адреса только при удалении == 0.

Кто-нибудь знает, как это сделать?

1 Ответ

3 голосов
/ 07 января 2011

Нет, нет.

По той же причине у вас не может быть условного внешнего ключа.

Обходным путем может быть использование TPH на Адрес Таблица:

  • Создание абстрактной сущности с именем Адрес
  • Создание производных сущностей с именами AddressDeleted и AddressNotDeleted
  • Установить сопоставление дискриминатора (сопоставления AddressDeleted в Address при удалении = 0)
  • Создать навигационное свойство между Customer и AddressDeleted.

Так, когда выdo ctx.Customer.Include("AddressDeleted").Single() он будет возвращать только те адреса, которые помечены как удаленные.

Или вы можете определить связь с Address и использовать ctx.Customer.Addresses.OfType<AddressDeleted>().

Решает ли это вашу проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...