0

私のデータベース関係は次のとおりです。

国 -> 地域 -> 都市 -> 医療 -> 医療サービス これらはすべて 1 対多で相互に接続されています。

これは、問題なく意図したとおりに機能するリストビューとエンティティデータソースです。問題はコードビハインドにあります。

 <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();

       }          

    }

DataBinding: '<>f__AnonymousType5`3[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken= b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' には、'City' という名前のプロパティが含まれていません。

どんな助けでも大歓迎です。私は Include プロパティと混同していますが、実際にはまったく必要ないと思います。

4

1 に答える 1