0

ASP.net エンティティ フレームワークの使用。データベース内の 2 つのエンティティ間に関連付けがあります (1->多数)。このコードを使用して、最初のエンティティ データのみを Web ページに返します。エンティティとその連想の両方を返すにはどうすればよいですか?

サーバ側

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>
4

1 に答える 1

0

短い答えは、おそらくメソッドが必要だということですInclude:

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

(あなたにとって)より長い答えは、クライアントに送信するものを正確に定義できるビューモデルを使用する方が良いということです。ほとんどの場合、そのようなモデルは、linq クエリからのプロジェクションによって簡単に設定できます。

 ... select new ExerciseSetModel { Property1 = e.Property1, Property2 = ... }
于 2012-09-11T21:38:26.243 に答える