FormView中的多个实体

时间:2012-09-08 14:39:59

标签: asp.net entity-framework formview

使用ASP.net实体框架。我在我的数据库中有两个实体之间的关联(一个>多个)。现在我只使用此代码将第一个实体数据返回到网页。如何返回实体及其关联?

服务器端

public IQueryable<Exercise> GetExercise([QueryString("exerciseID")]int? exerciseID)
    {

        IQueryable<Exercise> query = null;

        var context = new TrainingModelContainer();
        if (exerciseID.HasValue && exerciseID > 0)
        { 
        query = from e in context.ExerciseSet where e.Id == exerciseID select e;  
        }

        return query;
    }

网络

<asp:FormView ID="exerciseView" runat="server" ItemType="WebApplication1.Exercise" SelectMethod="GetExercise" RenderOuterTable="false">
        <ItemTemplate>
            <div>
                <p><%#:Item.Description %></p>
                <p><%#:Item.Date%></p>
            </div>
        </ItemTemplate>
    </asp:FormView>

1 个答案:

答案 0 :(得分:0)

简短的回答是您可能需要Include方法:

 context.ExerciseSet.Include("Associatives") where e.Id ....

更长的答案(对您而言)是最好使用视图模型,使您能够准确定义发送给客户端的内容。在大多数情况下,这样的模型可以简单地通过linq查询中的投影填充:

 ... select new ExerciseSetModel { Property1 = e.Property1, Property2 = ... }