Дерево выражений Как определить анонимный тип в предложении Where - PullRequest
0 голосов
/ 01 сентября 2018

У меня был похожий пост ранее, но я понял, что задаю не тот вопрос.

У меня есть запрос с парой объединений. Я пытаюсь добавить Where(x => x.y.Code == x.x.VariableColumn) (см. HistoryCode ниже) `

У меня есть этот код:

var query = db.HistoryData
   .Join(db.Calendars, x => x.EventId, x => x.EventId, (x, y) => new { x, y.CompanyId })
   .Join(db.JobData, x => x.CompanyId, x => x.CompanyId, (x, y) => new { x.x, y })
   .Where(x => x.x.CompanyId == companyId && x.y.JobLevel == levelNumber);

    var historyParameter = Expression.Parameter(typeof(HistoryData), "hist");
    var historyCode = Expression.Property(historyParameter, $"field{levelNumber}");
    var jobParameter = Expression.Parameter(typeof(JobData), "job");
    var jobCode = Expression.Property(jobParameter, "code");
    var operation = Expression.Equal(jobCode, historyCode);
    var filterCondition = Expression.Lambda<Func<string, bool>>(operation, new[] { jobParameter, historyParameter });

Когда я попадаю в присвоение filterCondition, я не знаю, как выразить тип (у меня есть «строка», но мне нужен анонимный тип, у которого есть данные HistoryData и JobData из объединения.

...