Я использую технику TPH (Таблица на иерархию) для сопоставления набора сущностей.
Схема БД:
Таблица UserGroupLabelSpreads, имеющая поля «UserId», «GroupId» и «LabelId» с некоторыми дополнительными общими полями.
DAL Объекты:
- UserGroupLabelSpread абстрактный класс.
- UserSpread с дискриминатором, имеющим только ненулевой UserId.
- GroupSpread с дискриминатором, имеющим только ненулевой GroupId.
- LabelSpread с дискриминатором, имеющим только ненулевой LabelId.
Мне удалось заставить эту вещь работать, но когда я пытаюсь подключить сущность UserSpread к существующей сущности "Пользователь", я получаю следующую ошибку:
Ошибка 1 Ошибка 3034: проблема в отображении фрагментов, начиная со строк 487, 554: два объекта с разными ключами отображаются в одну строку. Убедитесь, что эти два фрагмента отображения не отображают две группы сущностей с перекрывающимися ключами в одну и ту же группу строк.
Я копался, чтобы понять, что проблема в том, что я сопоставляю столбец UserId дважды: один раз для условия дискриминатора и второй для ассоциации.
Я прав с моим предположением? -Могу ли я заставить эту штуку работать?
Спасибо,
Nir.