C# 无法隐式转换类型';字符串';至';System.Collections.Generic.List<;字符串>'`
我有以下3个表格,结构如下所示。我正试图在这3个表中编写一个实体框架连接查询 要检索作业链接、用户已提交、运行状态、已提交时间、更改列表顺序(按提交时间) 我有一个holder类来返回输出…请注意,gerrits是一个C# 无法隐式转换类型';字符串';至';System.Collections.Generic.List<;字符串>'`,c#,entity-framework,join,C#,Entity Framework,Join,我有以下3个表格,结构如下所示。我正试图在这3个表中编写一个实体框架连接查询 要检索作业链接、用户已提交、运行状态、已提交时间、更改列表顺序(按提交时间) 我有一个holder类来返回输出…请注意,gerrits是一个列表,因为一次运行可能有多个值,这就是我得到错误的地方。有人能提供关于如何修复错误的指导,或者有更好的实践来实现这一点吗 持有人类别:- namespace Dashboard.Model.ApiModels { public class LookaheadRunInfo
列表
,因为一次运行可能有多个值,这就是我得到错误的地方。有人能提供关于如何修复错误的指导,或者有更好的实践来实现这一点吗
持有人类别:-
namespace Dashboard.Model.ApiModels
{
public class LookaheadRunInfo
{
public string ECJobLink { get; set; }
public List<String> changelists { get; set; }
public string UserSubmitted { get; set; }
public string SubmittedTime { get; set; }
public string RunStatus { get; set; }
}
}
错误:-
错误1无法将类型“string”隐式转换为“System.Collections.Generic.List”
查看类定义,changelists
定义为列表,现在查看查询,这里您将cl.change\u List.ToString()
分配给字符串列表。这与错误消息所说的是一样的,您正试图为字符串列表分配一个字符串值
修复
如果您确定
变更列表
is列表的数据类型,则从查询中删除该.ToString()
,并改用.ToList()
。如果changelists
是字符串,则意味着在属性定义中进行必要的更改。查看类定义,changelists
被定义为列表,现在查看查询,这里您将cl.change\u List.ToString()
分配给字符串列表。这与错误消息所说的是一样的,您正试图为字符串列表分配一个字符串值
修复
如果您确定
变更列表
is列表的数据类型,则从查询中删除该.ToString()
,并改用.ToList()
。如果changelists
是字符串,则表示在属性定义中进行必要的更改。哪一行显示该错误?@unlucky-changelists=cl.change\u list.ToString(),
显示该错误是否确实返回每个ECJobLink的cl.change\u列表集合,并且没有多个LookaheadRunInfo对象仅因cl.change\u列表值不同?哪一行显示该错误?@unlucky-changelists=cl.change\u list.ToString(),
显示该错误是否确实为每个ECJobLink返回cl.change\u列表的集合,并且没有多个LookaheadRunInfo对象仅因cl.change\u列表值不同?更改为ToList()
会产生错误error 1'int'不包含'ToList'的定义,并且找不到接受第一个'int'类型参数的扩展方法'ToList'(是否缺少using指令或程序集引用?)
请您解释一下,您想在那个地方做什么?如果您看到我的数据库表…您会注意到,对于一个前瞻运行id,我们可能有多个变更列表,我正在尝试从变更列表
表中检索这些变更列表
值,并将其更改为列表()
给出一个错误错误1'int'不包含'ToList'的定义,并且找不到接受第一个'int'类型参数的扩展方法'ToList'(是否缺少using指令或程序集引用?)
请解释一下,你在那个地方想做什么?如果你看到我的数据库表…你会注意到,对于一个前瞻运行id,我们可能有多个变更列表,我试图从change\u List
表中检索这些changelist
值到一个列表中
public IEnumerable<LookaheadRunInfo> GetLookaheadRunInfoSearch(LookaheadRunsFilterCriteria filterCriteria)
{
List<LookaheadRunInfo> lookaheadRunsInfo = new List<LookaheadRunInfo>();
var lookaheadRunData = bitDB.lookahead_run.OrderByDescending(x => x.lookahead_run_id).Skip(filterCriteria.PageNumber * filterCriteria.PageSize).Take(filterCriteria.PageSize).ToList();
foreach (var lookaheadRunRow in lookaheadRunData)
{
var lookaheadRunId = lookaheadRunRow.lookahead_run_id;
var lookaheadRuns = new LookaheadRunInfo();
lookaheadRuns = (from lrcl in bitDB.lookahead_run_change_list
join cl in bitDB.change_lists on lrcl.change_list_id equals cl.change_list_id
join lr in bitDB.lookahead_run on lrcl.lookahead_run_id equals lr.lookahead_run_id
where lrcl.lookahead_run_id == lookaheadRunId
orderby lr.submission_time
select new LookaheadRunInfo
{
ECJobLink = lr.ec_job_link,
//gerrits = cl.change_lists.Select(x => x.change_list.ToString()).ToList(),
changelists = cl.change_list.ToString(),
UserSubmitted = lr.submitted_by,
SubmittedTime =lr.submission_time.ToString(),
RunStatus = lr.lookahead_run_status,
}).ToList();
lookaheadRunsInfo.Add(lookaheadRuns);
}
return lookaheadRunsInfo;
}
lookahead_run (Table#1)
+-------------------+--------+----------------+-------------------+----------+
lookahead_run_id(PK)|joblink | usersubmitted |submitted_time |runstatus
+-------------------+--------+----------------+-------------------+----------+
15963---------------+link1---+---username1----+2017-03-17 22:28:53--Fail-----
lookahead_run_change_list (Table#2)
+---------------+----------------+-----------------+
changelistid(PK)|lookahead_run_id|change_list_id
+---------------+----------------+-----------------+
38591-----------+15963-----------+34022
38590-----------+15963-----------+34021
38589-----------+15963-----------+34020
change_lists (Table#3)
+-------------+-----------+
change_list_id|changelist
+-------------+-----------+
34022-------- 1823900
34021-------- 1819483
34020-------- 1818572