使用来自2个实体框架查询的数据加载嵌套转发器

时间:2010-01-20 15:29:20

标签: c# asp.net entity-framework

我有两张表A和B,它们有多对多关系。我正在使用嵌套转发器来显示网页中的数据。我的问题是,如何编写ObjectQuery或IQueryable查询,返回A中的父行和B中的子行,以便我可以将它们用作内部和外部转发器的数据源。我有到目前为止我写的代码,但我不确定它是否正确甚至接近。

<asp:Repeater ID="A" runat="server"><br/>
    <ItemTemplate><br/>
        <h2 class="Information"><br/>
            <%# Eval("Name") %> (<%#Eval("Abbreviation")%>)<br/>
        </h2><br/>
        <hr/><br/>
        <p> <%# Eval("Description")%> </p><br/>
        <asp:Repeater ID="B" runat="server"><br/>
            <ItemTemplate><br/>
                <li><br/>
                    <a href="..Pages/Category.aspx?<%# Eval("ID") %>"><br/>
                        <%# Eval("Name") %><br/>
                    </a><br/>
                </li>                        <br/>
            </ItemTemplate><br/>
        </asp:Repeater><br/>
    </ItemTemplate><br/>
</asp:Repeater>      

到目前为止,这是我的C#代码隐藏:

        using (DBEntities connection = new DBEntities())
        {


            ObjectQuery<A> As = connection.A;
            IQueryable<A> aQuery = from a in As
                                               orderby a.SortOrder
                                               select a;


            TechnologyRepeater.DataSource = As;
            DataBind();
        }

1 个答案:

答案 0 :(得分:1)

根据结构的不同,许多人会设置不同的方式。如果类A具有B实体的集合,则可以将其直接绑定到DataSource属性,如:

<asp:Repeater ... DataSource="<% Eval("Bs") %>">

因此,它取决于对象模型中引用实体的方式,这又取决于多对多的设置。看看这个:http://thedatafarm.com/blog/data-access/inserting-many-to-many-relationships-in-ef-with-or-without-a-join-entity/