我的數據庫關係如下;ASP.NET實體框架ListView entitydatasource多表,無法檢索數據
國家 - >地區 - >城市 - >醫療 - >醫療服務所有這些都是彼此相連的一對多。
這裏是listview和entitydatasource按預期工作,沒有任何問題。問題出在代碼背後。
<asp:ListView ID="lvMainContent" runat="server"
DataKeyNames="MedicalID">
<LayoutTemplate>
<ul ID="itemPlaceholderContainer" runat="server"
style="font-family: Verdana, Arial, Helvetica, sans-serif;">
<li runat="server" id="itemPlaceholder" />
</ul>
<div style="text-align: center;background-color: #CCCCCC;font-family: Verdana, Arial, Helvetica, sans-serif;color: #000000;">
</div>
</LayoutTemplate>
<ItemSeparatorTemplate>
<br />
</ItemSeparatorTemplate>
<ItemTemplate>
<li style="background-color: #DCDCDC;color: #000000;">Medicals:
<br />
MedicalName:
<asp:Label ID="Label1" runat="server" Text='<%# Eval("medicalName") %>' />
<br />
<br />
CityName:
<asp:Label ID="Label3" runat="server" Text='<%# Eval("City.CityName") %>' />
<br />
<br />
</li>
</ItemTemplate>
</asp:ListView>
<asp:EntityDataSource ID="lvMainContentDataSource" runat="server"
ConnectionString="name=EntitiesMedical"
DefaultContainerName="EntitiesMedical" EntitySetName="Medicals"
EnableFlattening="False">
</asp:EntityDataSource>
,這裏是後面的代碼連接到「搜索」按鈕,實際上代碼隱藏和ASP側似乎等同於我,但是當我按下搜索按鈕拋出一個錯誤,我後面的代碼之後添加它。
protected void SearchButton_Click(object sender, EventArgs e)
{
using(Entity.EntitiesMedical em = new Entity.EntitiesMedical())
{
var result = from m in em.Medicals
where m.City.CityName == "Düsseldorf"
select new
{
m.MedicalID,
m.medicalName,
m.City.CityName
};
EntityDataSource eds = new EntityDataSource();
eds.ConnectionString = "name=EntitiesMedical";
eds.DefaultContainerName = "EntitiesMedical";
eds.EntitySetName = "Medicals";
lvMainContent.DataSource = result.ToList();
lvMainContent.DataBind();
}
}
數據綁定:「<> f__AnonymousType5`3 [[System.Int32,mscorlib程序,版本= 4.0.0.0,文化=中性公鑰= b77a5c561934e089],[System.String,mscorlib程序,版本= 4.0.0.0 ,Culture = neutral,PublicKeyToken = b77a5c561934e089],[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]不包含名稱爲'City'的屬性。
任何幫助,將不勝感激。我對包含屬性感到困惑,實際上我根本不需要它。
大它的作品,感謝,但坦率地說,我不明白爲什麼我們不允許specificly選擇CityID或城市名,是不是一個性能問題來檢索所有表而不是隻有必要的領域?另一方面,我們允許選擇Medical table的特定字段 – mctuna
您可以直接選擇CityName,但是您必須將綁定更改爲CityName而不是City.CityName。就性能而言,這確實可以更好。 –