所以我需要在GroupJoin上設置Join。我搜索了很多關於我的問題的答案,但我找不到它。實體框架6使用lambda加入groupjoin
在數據庫中我有模板。我選擇一個帶有表格的模板,並與其中的項目進行連接。還有一個表格,其中有一行或多行文件鏈接到該項目,這是我使用的GroupJoin。這個工作,但現在的問題是,我需要調用表與文件鏈接到表(並且總是1不多)。
對於到目前爲止,我有這跟在一個羣組加入加入,但加入是不工作:
DataBundle = _context.DataTemplates.Join(_context.DataItems, DataTemplates => DataTemplates.Id, DataItems => DataItems.DataTemplateId, (DataTemplates, DataItems) => new { DataTemplates, DataItems })
.GroupJoin(_context.DataItemFiles.Join(_context.DataTemplateUploads, DataItemFiles => DataItemFiles.DataTemplateUploadId, DataTemplateUploads => DataTemplateUploads.Id, (DataItemFiles, DataTemplateUploads) => new { DataItemFiles, DataTemplateUploads }), x => x.DataItems.Id, x => x.DataItemFiles.DataItemId, (x, DataItemFiles) => new { x.DataItems, x.DataTemplates, DataItemFiles })
.Where(x => x.DataTemplates.CallName == CallName).Where(x => x.DataItems.WebsiteLanguageId == WebsiteLanguageId)
.Select(x => new DataBundle()
{
DataItemFiles = x.DataItemFiles, //error
DataItemResources = null,
DataItems = x.DataItems,
DataTemplateFields = null,
DataTemplates = x.DataTemplates,
DataTemplateUploads = x.DataTemplateUploads, //can't find, because DataTemplateUploads is linked to DataItemFiles
}).ToList();
public class DataBundle
{
public IEnumerable<DataItemFiles> DataItemFiles { get; set; }
public IEnumerable<DataItemResources> DataItemResources { get; set; }
public DataItems DataItems { get; set; }
public IEnumerable<DataTemplateFields> DataTemplateFields { get; set; }
public DataTemplates DataTemplates { get; set; }
public IEnumerable<DataTemplateUploads> DataTemplateUploads { get; set; }
}
有人知道如何解決這個問題?
請提供一個代碼示例數據集來幫助您解決問題。這裏是一個示例鏈接,以獲得滾球並解決您的問題:https://msdn.microsoft.com/en-us/library/bb534297(v=vs.110).aspx – Programmer