2013-12-14 132 views
0

我正在Windows Azure Web角色上運行此查詢,並且需要獲取相關的實體集,但我的lambda表達式似乎沒有工作。在查詢中使用lambda表達式

var query = from p in applicationsContext.Programs.Expand(p => p.Campus) 
        where p.ProgramId == Int32.Parse(programsList.SelectedValue) 
        select p; 

我使用System.LinqSystem.Data.Entities了,但是lambda表達式(p => p.Campus)導致錯誤:

Cannot convert lambda expression to type string because it is not a delegate type

任何想法,爲什麼這是行不通的?

編輯:Intellisence似乎也不認可lambda表達式中的'p',這可能是問題的一部分。

+0

展開預計刺,不是委託。也許只是「校園」會起作用? – jessehouwing

+0

你可以分享你正在使用的教程嗎? – jessehouwing

回答

0

我會冒險猜測:是p.Campus除了字符串類型之外的東西嗎?

+0

p.Campus是一個整數,但從我正在工作的例子來看,它不應該影響它 – Centimane

2

我認爲Expand必須得到字符串參數(link)。那麼你不能使用委託而是字符串。

+0

同意,這就是原因。 – BobHy

+0

那麼修復是什麼?我會加入什麼樣的聯繫? – Centimane

+0

如果'Campus'是'int',則不需要'Expand'這個屬性。如果'Campus'是相關實體,則使用'Expand(「Campus」)' – idlerboris

0

不知道你要什麼樣的數據源反對,但不要重複使用相同的「P」的內展開聲明:

var query = from p in applicationsContext.Programs.Expand(t => t.Campus) 
        where p.ProgramId == Int32.Parse(programsList.SelectedValue) 
        select p;