【问题标题】:Multiple entities in FormViewFormView 中的多个实体
【发布时间】:2012-09-12 05:38:26
【问题描述】:

使用 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>

【问题讨论】:

  • 您的问题是关于通过 EF 返回数据,还是关于通过 ASP.NET 显示相关数据?

标签: asp.net entity-framework formview


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多