我發展與實體框架我的第一個MVC應用程序。我有一個表用戶和表RESTRICTIONS如何通過LINQ查詢中的函數進行排序?
在我的控制,我寫一個返回兩個用戶之間的共同次數限制功能:
public int common_restrictions(int id1, int id2)
{
MyModel bd = new MyModel();
int count= 0;
var restrictions = from c in bd.RESTRICTIONS where c.ID_USER == id1
select c;
var restrictions2 = from c in bd.RESTRICTIONS where c.ID_USER == id2
select c;
foreach (var prop in restrictions)
{
var nr = restrictions2.Count(p => p.ID_PROP == prop.ID_PROP);
if (nr != 0)
{
count++;
}
}
return count;
}
功能的工作,因爲它應該。 現在在同一個控制器的另一個功能,我想用戶的列表中與特定的用戶下降的他們共同的限制進行排序(比方說用戶id爲12)。我在查詢用戶的列表中,但我不知道如何把它們整理我已經試過
var query = from u in bd.USERS orderby(common_restrictions(u.ID,
12)) select u;
是
var query = from u in bd.USERS where u.ID != 12
select u;
// sort the list??
後,但我得到了以下錯誤消息:
「LINQ實體無法識別方法‘的Int32 common_restrictions(的Int32,Int32)將’方法,和這種方法不能被翻譯成表達店」。
問題是你的函數輸出一個整數值,所以你基本上告訴它「order by 15」,而LINQ不明白15是什麼。您需要按列名稱排序。我不知道常見的限制是什麼,因爲你沒有給任何解釋,他們的目的是什麼,所以我不能幫你 – Ortund