【发布时间】:2017-03-04 11:01:49
【问题描述】:
您好,我正在编写 linq 查询以从多个表中获取数据。我正在尝试获取如下对象数组。
processobject retObj = new processobject();
retObj =(from c in entityObject.NCT_Process
join user in entityObject.NCT_UserRegistration on c.createdUserId equals user.User_Id
join file in entityObject.NCT_FileUpload on c.iconfileId equals file.upld_ID
join templObj in entityObject.NCT_Templates on c.ID equals templObj.processId
where c.processid == "10"
select new processobject
{
id = c.ID,
code = c.code,
flochartContent = c.flowchartContent,
//arrayofTemplates array i want to return
}
);
public class processobject
{
public templatesObject[] arrayofTemplates { get; set; }
public int id { get; set; }
public string flochartContent { get; set; }
public string code { get; set; }
}
在上面的查询中,我写了c.processid == "10" 的条件。所以NCT_Templates 中存在多条记录,processid 10。我想返回包含所有这些记录的数组。我在自定义类中创建了如下数组。
我有这个问题
processobject retObj = new processobject();
retObj = (from c in entityObject.NCT_Process
join user in entityObject.NCT_UserRegistration on c.createdUserId equals user.User_Id
join file in entityObject.NCT_FileUpload on c.iconfileId equals file.upld_ID
into filesObjFirst
from wt1 in filesObjFirst.DefaultIfEmpty()
join templObj in entityObject.NCT_Templates on c.ID equals templObj.processId
into filesObj
from wt in filesObj.DefaultIfEmpty()
where c.ID == dbObject.ID
select new processobject
{
id = c.ID,
code = c.code,
flochartContent = c.flowchartContent,
name = c.name,
parentId = c.parentId,
projectId = c.projectId,
objectives = c.objectives,
displayOrder = c.dispalyOrder,
iconFileId = c.iconfileId,
level = c.level,
iconFileobj = new iconFile
{
id = wt1.upld_ID,
name = wt1.fileName,
url = wt1.filePath
},
description = c.description,
startCriteria = c.startCriteria,
endCriteria = c.endCriteria,
reporting = c.reporting,
output = c.output,
kpi = c.kpi,
procedureHistory = c.procedureHistory,
role = c.role,
duration = c.duration,
owner = c.owner,
visibility = true,
createdUserId = c.createdUserId,
}).FirstOrDefault();
我还有这个问题
templatesObject[] templatesobject = (from c in entityObject.NCT_Templates
where c.processId == dbObject.ID
join file in entityObject.NCT_FileUpload on c.templateFileId equals file.upld_ID
into filesObjFirst
from wt1 in filesObjFirst.DefaultIfEmpty()
select new templatesObject
{
id = c.id,
title = c.title,
version = c.version,
visible = c.visibility,
filesObj = new iconFileTemplate()
{
id = wt1.upld_ID,
url = wt1.filePath,
name = wt1.fileName
}
}).ToArray();
在arrayofTemplates内部我想存储NCT_Templates的记录。
任何帮助,将不胜感激。谢谢。
【问题讨论】:
标签: c# arrays linq asp.net-mvc-4