1

我是新來的實體框架,並已與無濟於事研究這個.....雖然我可能沒有足夠的知識來問正確的問題。使用一個EntityDataSource選擇從導航屬性的所有項目一個GridView

我有一個表調用user_ISN用戶作爲其主鍵。用戶可以成爲其他用戶的朋友,所以我有一個擁有用戶的user_ISN和朋友的user_ISN的朋友表......創建了多對多的關係。實體框架已經將此模型化爲與導航屬性user.friends的自加入,這當然會將您帶回用戶表。

我需要創建一個使用網格視圖只顯示在當前登錄用戶的朋友ASP.Net網頁。我爲保存當前用戶的ISN的數據源創建了一個參數。

我一直無法弄清楚如何只選擇誰是當前用戶的朋友的用戶。我所嘗試的每件事都給了我各種我不明白的錯誤。你能爲我指出正確的方向嗎?我非常樂意進行額外的研究,但是我現在處於一個甚至不知道要尋找什麼的階段。

謝謝。

回答

1

在您的EntityDataSource控件標記中,添加'Include'屬性。

例如:

 <asp:EntityDataSource ... Include="Friends" ... /> 

這個工作由你的表的實體框架提供的導航屬性的結果。現在

,您還需要修改EntityDataSource控件的「位置」屬性。從屬性窗口中選擇'Where'屬性。這將啓動「表達式編輯器」窗口。您需要爲User_ISN創建一個參數。接下來,從列表中指定「參數源」。選擇適用於您如何將User_ISN傳遞到頁面的選項(例如,如果您在URL中傳遞值,則爲QueryString)。最後的「去哪兒」的表達應該是這個樣子:

 it.User_ISN == @User_ISN 

此時你告訴的EntityDataSource到在結果中包括當前用戶的所有朋友,你還指定如何篩選User_ISN針對當前用戶的結果。

需要注意的是,如果你使用模板列列的這種做法只會工作是很重要的。如果您在GridView中使用BoundField列,這將無法正常工作。

如果這沒有幫助,請提供您收到的錯誤消息。

+0

工作,謝謝。 – DigitalVir

相關問題