Я использую 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, и я понятия не имею, что это такое.В моем datalayer это возвращение как IQueryable, но когда я пытаюсь использовать версию datalayer, а затем выполняю .where в возвращенном наборе данных для поиска по нему, я получаю ошибки, которые не могу преобразовать лямбда-выражение в тип '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;
}