EF LINQ: Как исключить значения одной таблицы из другой - PullRequest
1 голос
/ 21 февраля 2011

У меня есть таблица с названием AnnualLeave, в которой хранятся даты забронированных праздников. У меня есть еще одна таблица под названием BankHolidays, и в этой таблице указаны даты, которые делают невозможным бронирование ежегодного отпуска одновременно. Однако иногда в таблицу BankHoliday добавляется дополнительная дата, например, для королевской свадьбы. Когда добавляется новый банковский выходной, я могу просто удалить все годовые отпуска в этот день, но что, если введенная дата неверна? Я хочу, чтобы администратор мог изменить эту дату, не удаляя ежегодный отпуск, который уже был забронирован. Поэтому я думаю, что решение состоит в том, чтобы сохранить даты AnnualLeave в таблице, но каждый запрос AnnualLeave должен исключать даты BankHoliday.

В SQL это будет эквивалентно предложению NOT IN или левому внешнему соединению с проверкой на Null в ключевом поле.

Вопрос в том, как мне сделать это в EF4?

1 Ответ

2 голосов
/ 21 февраля 2011

Может быть:

context.AnnualLeaves.Where(al => !context.BankHolidays.Any(bh => bh.Date == al.Date)).ToList();

Это может зависеть от вашего подхода к EF (Code First / POCO / Database First).

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