2012-03-09 73 views
0

我有一個類叫做人,有一個方法叫調用hasPermission(智力32)LINQ - 到實體無法識別方法布爾(INT32)

我試圖調用一些LINQ和嘗試了各種選擇,但還沒有設法找到解決方案,但如果任何人有任何想法,請你幫忙。

我現在有

IEnumerable<Person> co = this.Person(); 

//this.Person().Where(o => o.IsDeleted == false); 

// src.Where(o => o.IsDeleted == false).Select(v => new { Text = v.Name }); 
return this.Json(co,JsonRequestBehavior.AllowGet); 

你可以看到一對夫婦的其他事情,我的意見都試過了。

感謝您的幫助提前

傑瑪

+3

所以,'Person'是返回IEnumerable的''的方法?根據它的名字,它可能不是。 'Person'方法的簽名會很有幫助。 – 2012-03-09 12:30:00

+2

'hasPermission'在這裏有什麼作用?您正在尋找解決方案,但沒有明確說明問題。 – 2012-03-09 12:39:08

+0

是的人是IEnumerable。 person類有一個hasPermission(int permissionID)的方法,用於設置人員的權限。但是我想要做的就是返回一個人名單。該問題是由LINQ to Entities方法 – gadgetgem 2012-03-09 12:45:56

回答

1

OK,因爲這是LINQ到實體,則需要使用AsEnumerable方法:

// this.Person().Where(o => !o.IsDeleted) is translated by EF, the rest isn't 
this.Person().Where(o => !o.IsDeleted).AsEnumerable().Where(p => p.hasPermission(5)); 

AsEnumerable擴展方法包裝你的LINQ to實體產生一個通用的IEnumerable。因此,後續的LINQ不會被EF轉換爲SQL,而只是被執行。

查看MSDN瞭解進一步的信息,AsEnumerable太:http://msdn.microsoft.com/en-us/library/bb335435.aspx

相關問題