2011-06-14 123 views
1

我正在使用EF4,並在我的域模型中有一個名爲Applications的實體。應用程序有一個名爲Status的導航屬性。狀態實體包含2個字段,StatusID和StatusName。 我正在顯示一個DataGrid,顯示應用程序的詳細信息。我用[Include]屬性修飾了應用程序元數據,並且還修改了GetApplicationsQuery以包含一個.Include(「status」)語句。網格的ItemsSource是使用Linq查詢在代碼中設置的。Silverlight 4實體框架將DataGridColumn綁定到導航屬性

如果我將DataGrid上的AutoGenerateColumns設置爲true,則狀態列指示存在狀態對象,因此它看起來像包含工作正常。 我現在想要將AutoGenerateColumns設置爲false並手動構建數據網格(僅顯示幾列),但我找不到如何將StatusName字段(屬於狀態導航屬性)綁定到其中一列。下面的代碼顯然不起作用,因爲我有效地將狀態列綁定到對象,但綁定到導航屬性上的字段的正確方法是什麼?

<telerik:GridViewDataColumn Header="App Name" DataMemberBinding="{Binding AppName}"/> 
<telerik:GridViewDataColumn Header="Commentary" DataMemberBinding="{Binding Commentary}"/> 
<telerik:GridViewDataColumn Header="Status" DataMemberBinding="{Binding **status**}"/> 

我試過綁定到status.StatusName,但我現在只是猜測。任何幫助,將不勝感激。

由於

中號

回答

0

發現這個問題。

而不是使用DomainService(本例中的GetApplicationsQuery)中定義的查詢,我使用Linq查詢(來自ctx.applications其中..........)。

生成的GetApplicationsQuery添加了.Include(「狀態」)語句,但我的手動Linq查詢沒有。

設置我的DataGrid的ItemsSource使用GetApplicationsQuery()。其中​​(A => ....我當時能夠使用2零件名稱,status.StatusName訪問導航屬性。

中號