Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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# 向模型存储库发送查询_C#_Asp.net Mvc - Fatal编程技术网

C# 向模型存储库发送查询

C# 向模型存储库发送查询,c#,asp.net-mvc,C#,Asp.net Mvc,请帮忙。我是ASP.NET MVC新手,尝试向存储库发送查询,但它给我一个错误: 错误3无法隐式转换类型 “System.Collections.Generic.List”到 'System.Collections.Generic.IList'。一 存在显式转换(是否缺少强制转换?) 我使用的模式类只包含我需要的列。这是我用于存储库的代码 public class SSGridRepository : SSGridIRepository { private DataClassesSSDa

请帮忙。我是ASP.NET MVC新手,尝试向存储库发送查询,但它给我一个错误:

错误3无法隐式转换类型 “System.Collections.Generic.List”到 'System.Collections.Generic.IList'。一 存在显式转换(是否缺少强制转换?)

我使用的模式类只包含我需要的列。这是我用于存储库的代码

public class SSGridRepository : SSGridIRepository
{
    private DataClassesSSDataContext db;

    public SSGridRepository()
    {
        db = new DataClassesSSDataContext();
    }

    public IList<SSQuerySchema> ListAll()
    {

        var SSQuery = (from HISTORies in db.HISTORies
                       join SSes in db.SSes on HISTORies.WO equals SSes.WO
                       join SSCUSTOMs in db.SSCUSTOMs on SSes.WO equals SSCUSTOMs.WO
                       join StatusTables in db.StatusTables on new { STATUS = SSes.STATUS } equals new { STATUS = StatusTables.Status }
                       join StatusTable_1 in db.StatusTables on new { OLDSTATUS = HISTORies.OLDSTATUS } equals new { OLDSTATUS = StatusTable_1.Status }
                       join StatusTable_2 in db.StatusTables on new { NEWSTATUS = HISTORies.NEWSTATUS } equals new { NEWSTATUS = StatusTable_2.Status }
                       where
                         HISTORies.OLDSTATUS == "m" &&
                         HISTORies.NEWSTATUS == "n" &&
                         HISTORies.ACTION == "Change Job Status" &&
                         HISTORies.OLDSTATUS != HISTORies.NEWSTATUS &&
                         HISTORies.DATE.Value.Year == Convert.ToDateTime(DateTime.Now).Year ||
                         HISTORies.OLDSTATUS != HISTORies.NEWSTATUS &&
                         HISTORies.NEWSTATUS == "m" &&
                         HISTORies.ACTION == "Checked In Work Order" &&
                         HISTORies.DATE.Value.Year == Convert.ToDateTime(DateTime.Now).Year
                       orderby
                         HISTORies.DATE
                       select new
                       {
                           HISTORies.WO,
                           SSes.TITLE,
                           SSes.DESCRIPT,
                           SSCUSTOMs.CUSTNAME,
                           SSes.STAKER,
                           HISTORies.USER,
                           SSes.STATUS,
                           HISTORies.OLDSTATUS,
                           HISTORies.NEWSTATUS,
                           CURRENT_STATUS = StatusTables.Description,
                           OLD_STATUS = StatusTable_1.Description,
                           NEW_STATUS = StatusTable_2.Description,
                           HISTORies.DATE.Value.Month,
                           HISTORies.DATE
                       }).Distinct();
        return SSQuery.ToList();
    }        
}
公共类SSGridRepository:SSGridIRepository
{
私有数据类SDataContext数据库;
公共SSGridRepository()
{
db=新的DataClasseSSDataContext();
}
公共IList ListAll()
{
var SSQuery=(来自db.HISTORies中的历史记录
在db.SS中加入SS。在历史记录上,SS.WO等于SS.WO
将SSCUSTOMs连接到ss.WO上的db.SSCUSTOMs中等于SSCUSTOMs.WO
新{STATUS=SSes.STATUS}上的db.StatusTables中的join StatusTables等于新{STATUS=StatusTables.STATUS}
新{OLDSTATUS=HISTORies.OLDSTATUS}上的db.StatusTables中的join StatusTable_1等于新{OLDSTATUS=StatusTable_1.Status}
在新{NEWSTATUS=HISTORies.NEWSTATUS}上的db.StatusTables中联接StatusTable_2等于新{NEWSTATUS=StatusTable_2.Status}
哪里
HISTORies.OLDSTATUS==“m”&&
HISTORies.NEWSTATUS==“n”&&
HISTORies.ACTION==“更改作业状态”&&
HISTORies.OLDSTATUS!=HISTORies.NEWSTATUS&&
HISTORies.DATE.Value.Year==Convert.ToDateTime(DateTime.Now).Year||
HISTORies.OLDSTATUS!=HISTORies.NEWSTATUS&&
HISTORies.NEWSTATUS==“m”&&
HISTORies.ACTION==“签入工单”&&
HISTORies.DATE.Value.Year==Convert.ToDateTime(DateTime.Now).Year
排序子句
日期
选择新的
{
(www.WO),
女秘书长头衔,
请描述一下,
SSCUSTOMs.CUSTNAME,
斯塔克夫人,
历史记录。用户,
社会地位,
历史,旧身份,
历史,新闻状态,
当前状态=状态表。说明,
旧状态=状态表1.说明,
新状态=状态表2.说明,
历史。日期。价值。月份,
日期
}).Distinct();
返回SSQuery.ToList();
}        
}

您试图返回一个
IList
,但实际返回类型是
IList
(您选择的不是
SSQuerySchema
,而是匿名类型


您应该创建函数
IList
的返回类型,或者修改您的选择以创建
SSQuerySchema

的新实例。您试图返回
IList
,但实际返回类型是
IList
(您没有选择
SSQuerySchema
),而是一个匿名类型


您应该创建函数的返回类型
IList
,或者修改您的选择以在您的系统中创建
SSQuerySchema

的新实例,然后执行以下操作:

select new  {
                           HISTORies.WO,
                           SSes.TITLE,
                           SSes.DESCRIPT,
                           SSCUSTOMs.CUSTNAME,
                           SSes.STAKER,
                           HISTORies.USER,
                           SSes.STATUS,
                           HISTORies.OLDSTATUS,
                           HISTORies.NEWSTATUS,
                           CURRENT_STATUS = StatusTables.Description,
                           OLD_STATUS = StatusTable_1.Description,
                           NEW_STATUS = StatusTable_2.Description,
                           HISTORies.DATE.Value.Month,
                           HISTORies.DATE
                       }
这是一个动态类型,因此它与您返回的
列表类型不匹配

尝试初始化您在Linq中指定的类型并设置属性

  select new SSQuerySchema {
                               // initialize all properties here
                           }

在you Linq中,您可以这样做:

select new  {
                           HISTORies.WO,
                           SSes.TITLE,
                           SSes.DESCRIPT,
                           SSCUSTOMs.CUSTNAME,
                           SSes.STAKER,
                           HISTORies.USER,
                           SSes.STATUS,
                           HISTORies.OLDSTATUS,
                           HISTORies.NEWSTATUS,
                           CURRENT_STATUS = StatusTables.Description,
                           OLD_STATUS = StatusTable_1.Description,
                           NEW_STATUS = StatusTable_2.Description,
                           HISTORies.DATE.Value.Month,
                           HISTORies.DATE
                       }
这是一个动态类型,因此它与您返回的
列表类型不匹配

尝试初始化您在Linq中指定的类型并设置属性

  select new SSQuerySchema {
                               // initialize all properties here
                           }

错误在最后一行.SSQuery.ToList();错误在最后一行.SSQuery.ToList();如果使用初始值设定项,则需要显式指定属性名称。如果使用初始值设定项,则需要显式指定属性名称。