Заполнить фильтр по объединению лет из 3 таблиц - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть приложение asp.net mvc2, и я использую Linq2Sql (dbml).У меня есть 3 таблицы:

AccountHeaders, AccountDocuments и AccountNumbers

Все они имеют 3 столбца (id (PK), accountID (FK) и accountdate (datetime)).Я хочу заполнить список выбора в моем представлении (фильтр по годам) по объединению лет из этих таблиц (по годам).Как мне это сделать?

1 Ответ

1 голос
/ 20 сентября 2011

Попробуйте что-то подобное:

ctx.AccountHeaders.GroupBy(x=>x.accountdate.Year).Select(x=>x.Key).Union(
  ctx.AccountDocuments.GroupBy(x=>x.accountdate.Year).Select(x=>x.Key)).Union(
     ctx.AccountNumbers.GroupBy(x=>x.accountdate.Year).Select(x=>x.Key));

Если столбец даты обнуляем, вам нужно его немного изменить. Также проверьте, какой SQL он генерирует, может потребоваться перефразировать запрос, чтобы получить более оптимальный код SQL.

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