У меня есть список каждой недели начала года.
List<DateTime> yearWeeks = GetAllDaysOfWeekForYear(DateTime.Now.Year, DayOfWeek.Monday);
Я хочу перечислить их рядом с таблицей БД:
db.planner.Where(a => a.EmployeeId == CustomerId && a.Year == DateTime.Now.Year).Join(yearWeeks, c => c.WeekStarting, d => d.ToLongDateString(), (c, d) => new
{
yearDate = d.ToLongDateString(),
c.WeekStarting
}).ToList();
Это вызывает ошибку
The type arguments for method Queryable.Join cannot be inferred from the usage.
Как я могу объединить их вместе с linq?
Join
принимает 4 параметра (первая перегруженная версия):
Первый - это последовательность, к которой нужно присоединиться (yearweeks
), второй - это ключ из первой последовательности (WeekStarting
), третий параметр - это ключ из второй последовательности, а четвертый параметр принимает лямбда для выбора совпадающих элементов:
A function to create a result element from two matching elements.
DatesDeclared.planner = db.planners.Where(a => a.EmployeeId == 2 && a.Year == DateTime.Now.Year).Join(yearweeks, c => c.WeekStarting, d => d.Value, (c, d) => new
{
c.WeekStarting,
d.Value
}).ToList();
Синтаксис запроса удобнее использовать, чем синтаксис лямбда, и проще:
var data = from p in planners
join w in yearweeks on p.WeekStarting equals w.Value
select new
{
p.WeekStarting,
w.Value
};
Не зная типа, который вы возвращаете, я не могу знать, что это за тип DatesDeclared.planner
, поэтому приведенный выше код возвращает список анонимного типа.
Что за тип yearweeks
?
Список <DateTime> годНедели
Пожалуйста, добавьте класс модели, составляющий объект planner
Я обновил свой вопрос. Я получаю другую ошибку при соединении