我正在使用Linq2SQL并使用遗留系统。该系统是在.Net中构建的,但是没有数据层,所以我对它进行转码,以便它有一个。我有一个看起来像这样的linq查询...
var data = from p in db.tblPeoples
orderby p.strLastName,p.strFirstName
select new
{
guidPersonId = p.guidPersonId,
strFirstName = p.strFirstName,
strLastName = p.strLastName,
strRank = p.tblCodesRank.strDescription,
strPhone = p.strPhone,
strEmail = p.strEmail,
strOffice = p.tblOrganization.strAcronym,
RolesList = p.tblRoles
};
当我检查var的签名时,它是一个IQueryable,我不知道那是什么。在我的数据层中,我将其作为IQueryable返回,但是当我尝试使用数据层版本然后在返回的数据集上执行.where来搜索它时,我得到的错误是我无法将lambda表达式转换为键入'string',因为它不是代表类型。
我该怎么办?我正在尝试创建代码重用并使用已编写的数据层版本。数据层版本如下所示:
public static IQueryable RetrieveAllPeople()
{
var data = from p in db.tblPeoples
orderby p.strLastName, p.strFirstName
select new
{
guidPersonId = p.guidPersonId,
strFirstName = p.strFirstName,
strLastName = p.strLastName,
strRank = p.tblCodesRank.strDescription,
strPhone = p.strPhone,
strEmail = p.strEmail,
strOffice = p.tblOrganization.strAcronym,
RolesList = p.tblRoles
};
return data;
}