Entity Framework 4 создает сущность с отфильтрованными результатами - PullRequest
0 голосов
/ 25 января 2012

Мне нужно создать объект с отфильтрованными результатами.

например.У меня есть один стол студент.Через дизайнера я могу создавать студенческую сущность.Когда я удаляю студента, требуется просто изменить поле удалено = true вместо фактического удаления.

Поэтому проблема заключается в том, что всякий раз, когда я пытаюсь получить доступ к студенту, он выдает полный список, включая удаленного студента.Поэтому я должен добавить код как .where(c=> c.deleted=false) везде, где используется список.

Поэтому необходимо создать объект с фильтром.

Я пытался использоватьвид но у него есть свои проблемы.Вроде нужен первичный ключ и только для чтения и т. Д.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Вы можете использовать условные отображения: http://www.codeproject.com/Articles/94784/Using-Conditional-Mapping-in-Entity-Framework

0 голосов
/ 25 января 2012

ОБНОВЛЕНИЕ

Ниже данное решение не работает.Он по-прежнему выдает ошибку Mapping, приведенную ниже.

Итак, наконец-то пошло простое глупое решение.Добавление хранимой процедуры.

Я сохранил предыдущий ответ для справки.


Расширение до принятого ответа ivowiblo.

Выше работал для меня.

Кроме того, мне пришлось сделать несколько изменений.

Когда условное отображение было выполнено, оно выдало ошибку

Проблема при отображении фрагментов, начинающихся со строки x: Условный член 'Student.Удалено 'с условием, отличным от' IsNull = False ', сопоставлено.Либо удалите условие для Student.Deleted, либо удалите его из сопоставления.

Я удалил столбец Deleted из сущности в качестве аргумента, приведенного here .

Теперьпроблема заключалась в том, как удалить (пометить как удаленное) студента, поскольку моя сущность не удаляла свойство.

Я выполнил следующее

  1. Копия вставила Student сущность в конструктор
  2. Переименован в StudentWithDeleted
  3. Добавлен столбец deleted в StudentWithDeleted
  4. Отображен объект StudentWithDeleted в таблицу student в деталях сопоставления.

Теперь, когда я хочу удалить (пометить как удаленного) студента, я просто открываю объект StudentWithDeleted, используя find(StudentId), присваиваю deleted=1 и сохраняю.

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