Что-то, что я не совсем понимаю в условных отображениях - PullRequest
0 голосов
/ 27 октября 2011

В большинстве случаев мы можем сопоставить поле в таблице либо со свойством, либо мы можем сопоставить его с помощью условного сопоставления, но не обоих. Единственное исключение - если условие установлено на Is NotNull, с тех пор мы можем также сопоставить столбец.

a) Это причина, по которой мы можем отобразить столбец БД только один раз, а именно: если бы поле было разрешено иметь как отображение свойств, так и условное отображение, то отображение свойств сообщило бы EF, что нужно извлечь все строки таблицы в то время как условное отображение скажет EF извлечь только те строки, которые удовлетворяют условию ?!

b) Если мои рассуждения по a) верны, то почему в поле разрешено иметь оба сопоставления, когда условие установлено на Is NotNull? Почему это не создает конфликт?

Спасибо

1 Ответ

2 голосов
/ 28 октября 2011

Отображение с условием Is NotNull имеет особое значение, поскольку требует последующего изменения вашей модели. Сопоставленное свойство в модели не должно быть обнуляемым. Таким образом, ваш столбец в базе данных обнуляется, ваше условие отображения фильтрует все записи с нулевым значением, а ваше свойство всегда получает только записи с ненулевыми значениями. Также вы никогда не можете присвоить null свойству.

В случае общего условия со значением равенства это специальное поведение невозможно.

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