1

わかりました。Order と OrderLine という 2 つのテーブルがあり、何らかの理由でデータベースに外部キー関係がないとします (これは例であり、一緒に住んでいます)。ここで、Entity Framework を使用してこれら 2 つのテーブルを結合し、次のようなものを作成します。

        using (var model = new Model())
        {
            var orders =  from order in model.Order
                          join orderline in model.OrderLine on order.Id equals orderline.OrderId into orderlines
                          from ol in orderlines.DefaultIfEmpty()
                          select new {order = order, orderlines = orderlines};

        }

さて、上記はオーダーとオーダーライン、左結合などを生成しますが、多くの問題があります:

  1. 単純に醜いです
  2. 匿名型を返します
  3. 同じ注文の複数のインスタンスを返します。orders.Distinct() が失敗するため、クライアント側で Distinct() を実行する必要があります。

私が探しているのは、次のようなソリューションです。

  1. かわいい
  2. 匿名型ではなく、静的によく知られている型を返します (クエリ結果を投影しようとしましたが、OrderLines で問題が発生しました)
  3. サーバー側で Distinct を実行

誰?

4

1 に答える 1

3

データベース テーブルに外部キー リレーションシップが設定されていない場合でも、Entity Framework を設定しているかのように構成できます。

OrderDetails ナビゲーション プロパティを Order クラスに追加してから、Orders をクエリします。

于 2012-11-21T15:40:03.890 に答える