Entity Framework - различать множественные значения - PullRequest
3 голосов
/ 04 мая 2011

В сценарии с таблицей за иерархией возможно различать список возможных значений?

например, для типов Color, DarkColor, LightColor

что-то типа

 Map<DarkColor>(m => m.Requires("TheColor").HasValue(Red || Blue)
 Map<LightColor>(m => m.Requires("TheColor").HasValue(Yellow || White)

плохой пример, но, надеюсь, вы получите картину!

Ответы [ 2 ]

1 голос
/ 13 июня 2011

Нет, это невозможно.

Платформа сущностей позволяет отображать только с использованием пересечения условий, а не объединения условий.
Это можно увидеть как в конструкторе [1] , так и в синтаксисе EDMX [2].
* Код сначала должен иметь те же возможности отображения.

[2] Если вы щелкнете правой кнопкой мыши по файлу edmx и выберете «Открыть с помощью…» -> «Автоматический выбор редактора (XML)» и попытаетесь вручную отредактировать условия сопоставления, которые вы увидите (из intellisense), что нет возможности ввести «ИЛИ» между условиями.

0 голосов
/ 13 мая 2011

Прежде всего, я не уверен, возможно ли то, что вы хотите, EF хочет позаботиться о столбце дискриминатора, и, основываясь на типе класса, он хотел бы установить значение дискриминатора, в данном случае какон собирается установить значение, до которого возможно.Это не имеет никакого значения при загрузке из БД, но немного проблематично при попытке сериализовать его в БД.

1 - вы пытались сделать несколько карт для каждого возможного значения :) Возможно, возникла ошибка:DarkColor уже сопоставлен.

2- 2-е предложение - добавить атрибут [NotMapped] ColorWeight и вернуть темный или белый цвет на основе theColor, и использовать это свойство в качестве поля дискриминатора, но я предполагаю, что поле дискриминатора должно существоватьв таблице.

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