好吧,我有一個多對多的關係是這樣的:如何在數據控件(如FormView)中顯示錶的導航屬性?
Walk = {WalkID, title, ...., (Navigation Properties) Features}
Feature = {FeatureID, featureName, description, (Navigation Properties) DogWalks}
我當然有一個結表,但EF假定這個因而它不是在我的EDMX圖所示:
WalkFeatures = {WalkID, FeatureID} //junction, both FK
所以使用LINQ和EF,我現在試圖抓住Walk
的功能WalkID=xx
。
這是我formview
:
<asp:FormView ID="FormView1" runat="server" ItemType="Walks.DAL.Walk" SelectMethod="FormView1_GetItem">
<ItemTemplate>
<h1><%# Item.Title %></h1>
...
</ItemTemplate>
</asp:FormView
<asp:Label ID="lbFeatures" runat="server" Text="Label"></asp:Label>
而且selectMethod:
public Walks.DAL.Walk FormView1_GetItem([QueryString("WalkID")] int? WalkID)
{
using (WalkContext db = new WalkContext())
{
var walk = (from n in db.Walks.Include("Features")
where n.WalkID == WalkID
select n).SingleOrDefault();
foreach(var f in walk.Features){
lbFeatures.Text += f.FeatureName + "<br/>";
}
return walk;
}
}
的代碼運行正常,但就是沒有辦法,我可以直接顯示Walk.Features
的formview
相當的<ItemTemplate>
內的方式比使用標籤和循環?該屬性是否可以像.aspx
頁面中的其他屬性一樣直接綁定?
但是,您的標籤控制'lbFeatures'不在'FormView'裏面,您希望數據源如何在控件之外工作? –
@RahulSingh是的,這是真的,如上所述,代碼在當前設置中運行良好。但是必須有一種方法來顯示'中的所有內容,而不是依靠外部標籤。另外請注意我不能移動模板內的標籤,因爲它給了我一個編譯錯誤(當前代碼看不到它)。 –
gudthing
檢查我的答案,可能這可能會幫助你。 –