0
我正在使用Linq2SQL並使用舊系統。該系統內置.Net,但沒有數據層,所以我將它轉碼,以便它有一個。我有一個LINQ查詢,看起來像這樣...如何使IQueryable <out T>與指令IQueryable一起工作?
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返回,但是當我嘗試使用數據層版本,然後在返回的數據集上執行搜索時,出現錯誤,我無法將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;
}
你有什麼理由在你的RetrieveAllPeople()中使用匿名類嗎?另外,你的IQueryable沒有指定一個類型,你不覺得有必要獲取必要的屬性嗎? – 2010-10-14 14:18:09
有人可以解釋什麼是當編譯器拋出'不能轉換lambda表達式鍵入'字符串,因爲它不是一個委託類型'是什麼意思? – 2010-10-14 14:19:23