Entity Framework Linq синтаксис метода соединения - PullRequest
0 голосов
/ 30 марта 2020

У меня есть следующий запрос, который отлично работает

   var aaa = from d in _context.SubCategories
            join x in _context.CategoryLinks on d.ID equals x.SubCategoryID
            where x.CategoryID == CategoryID
            select new
            {
                 d.ID,
                 d.Name,
                 d.Code
            };

Теперь я хотел бы преобразовать его в синтаксис метода linq, так как imo он выглядит чище, и вместо 'select new' я хочу проецировать его к модели DM.SubCategory.

Как мне этого добиться? Я попробовал приведенный ниже код, но после ввода cl.X он не позволяет мне выбрать какой-либо столбец enter image description here Таблица CategoryLink предназначена только для проверки наличия связи между категорией и подкатегорией. (содержит ID, CategoryID и SubCategoryID с соответствующими FK)

Решено после проецирования на результат, все еще не знаю, почему Visual Studio отказывается предлагать cl.X, хотя

_context.SubCategories
           .Join(_context.CategoryLinks,
              sc => sc.ID,
              cl => cl.SubCategoryID,
              (sc, cl) => new { SubCategory = sc, CategoryLinks = cl })
           .Select(x => x.SubCategory);
...