C# 向模型存储库发送查询
请帮忙。我是ASP.NET MVC新手,尝试向存储库发送查询,但它给我一个错误: 错误3无法隐式转换类型 “System.Collections.Generic.List”到 'System.Collections.Generic.IList'。一 存在显式转换(是否缺少强制转换?) 我使用的模式类只包含我需要的列。这是我用于存储库的代码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
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();如果使用初始值设定项,则需要显式指定属性名称。如果使用初始值设定项,则需要显式指定属性名称。