我想開發一個LINQ查詢,它將測試數據庫中的字符串是否在沒有子字符串返回true的數組內,只是整個字符串。在LINQ中使用表達式的多輸入匿名函數
Func<int, string[], bool> predicate = (i, x) => x.Any(i.ToString().Equals);
user.Company += (from c in context.Tbl_Institute
where (predicate(c.Institute_ID,values))
select c.Institute_Title + ","
).ToString();
我有這種迄今其編譯,但提供了我的一個錯誤: 的LINQ表達式節點類型「調用」不LINQ支撐到實體。
從研發似乎意味着我需要使用的表達式。
然而,這並不編譯。
Expression`<Func<int, string[], bool>> predicate = (i, x) => x.Any(i.ToString().Equals);`
由於predicate(c.Institude_ID,values)
有錯誤閱讀 「有望方法名稱」。
有沒有人有這方面的經驗?我對匿名函數很陌生。
編輯:由於這裏要求是不編譯代碼,我道歉,如果我還不清楚。
Expression<Func<int, string[], bool>> predicate = (i, x) => x.Any(i.ToString().Equals);
user.Company += (from c in context.Tbl_Institute
where (predicate(c.Institute_ID,values))
select c.Institute_Title + ",").ToString();
我看不出有什麼明顯的錯誤在你共享的代碼點點。聽起來像謂詞聲明有問題。但沒有一個可靠地再現問題的好的[mcve],我不能指出任何具體的東西。請改善你的問題。 –
將函數更改爲表達式時,此函數不會自行編譯。當它顯式地返回錯誤時,不確定其他代碼如何幫助。 –
@AnthonyDrury - 你的代碼看起來有點奇怪。你在'IQueryable <>'上調用'.ToString()'。你真的需要爲我們提供[mcve]。這意味着向我們提供最少量的代碼,我們可以通過粘貼和編譯來查看您遇到的錯誤。 – Enigmativity