Я хочу все в списках файлов, пока в инструментах есть соответствующая запись. У меня есть 0..1 ко многим отношениям между Machine, PrintTypes и MaterialTypes. У меня есть много к одному между FileLists и Tools. Я хочу, чтобы все записи из списков файлов, если есть совпадение в инструментах. Значения в Machine, PrintTypes и MaterialTypes являются необязательными. Если они есть в этих таблицах, я тоже хочу этого, если нет, я просто хочу, чтобы ноль отображался Я думаю, что это правильное внешнее соединение.
Мой запрос выглядит так:
var query =
from tool in context.Tools
join file in context.FileLists on tool.ToolID equals file.ToolID
into machine from rt in machine.DefaultIfEmpty()
//join print in context.PrintTypes on file.PrintTypeID equals print.PrintTypeID
//join material in context.MaterialTypes on file.MaterialTypeID equals material.MaterialTypeID
where file.IsFirstPartRecord == false
orderby file.FileListID ascending
select new {
ToolNumber = tool.ToolNumber,
Description = tool.Description,
Date = file.Date,
Time = file.Time,
FileListID = file.FileListID,
MachineName = machine.Name,
//PrintType = print.Name,
};
Когда я добавляю строку:
into machine from rt in machine.DefaultIfEmpty()
Все файлы .XXX имеют ошибки. Ошибка:
Имя «файл» не существует в текущем контексте
Что не так с моим синтаксисом?