Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法隐式转换类型';字符串';至';System.Collections.Generic.List<;字符串>'`_C#_Entity Framework_Join - Fatal编程技术网

C# 无法隐式转换类型';字符串';至';System.Collections.Generic.List<;字符串>'`

C# 无法隐式转换类型';字符串';至';System.Collections.Generic.List<;字符串>'`,c#,entity-framework,join,C#,Entity Framework,Join,我有以下3个表格,结构如下所示。我正试图在这3个表中编写一个实体框架连接查询 要检索作业链接、用户已提交、运行状态、已提交时间、更改列表顺序(按提交时间) 我有一个holder类来返回输出…请注意,gerrits是一个列表,因为一次运行可能有多个值,这就是我得到错误的地方。有人能提供关于如何修复错误的指导,或者有更好的实践来实现这一点吗 持有人类别:- namespace Dashboard.Model.ApiModels { public class LookaheadRunInfo

我有以下3个表格,结构如下所示。我正试图在这3个表中编写一个实体框架连接查询 要检索作业链接、用户已提交、运行状态、已提交时间、更改列表顺序(按提交时间)

我有一个holder类来返回输出…请注意,gerrits是一个
列表
,因为一次运行可能有多个值,这就是我得到错误的地方。有人能提供关于如何修复错误的指导,或者有更好的实践来实现这一点吗

持有人类别:-

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