-2

私はオープン アクセスを使用しており、親エンティティの情報だけを取得して、関連する子の情報をカスタム ロードする簡単な方法が必要です。つまり、注文を求めるときは、注文情報と、注文情報をロードできるかどうかだけが必要です。

私が持っている場合:

Public Class Order
Public Property Number As Long
Public Property Description As String
Public Property OrderLines as List(of OrderLines) = new List(of OrderLines)
End Class

たとえば、次のことが必要な場合はどうすればよいですか。

Dim e as new EntitiesModel()
Dim q as Order = (from c in e.Orders
                 where c.Number = 5
                 select c).FirstOrDefault()

そして、OrderLines ではなく、Order Data を取得するためだけにクエリが必要です。これは、OA がデフォルトで行うようです。

編集:私はすでにこれを試しました:

            Using dbcontext As New EntitiesModel()
            Dim fetchStrategy As New FetchStrategy()
            dbcontext.FetchStrategy = fetchStrategy
            Dim q As Order
            q = (From c In dbcontext.Orders
                Where c.PK_Order = 79
                Select c).FirstOrDefault
            For Each olFound In q.OrderLines
                Dim i As Integer
                Console.WriteLN(olFound.Description&VbNewLine)
            Next
        End Using

私はまだ OrderLines データを受け取っていますが、そのデータは常に必要というわけではありません。telerik の例のほとんどは、関連するデータをロードしようとしていますが、その逆が必要です。やりたいかやりたくないかを指定する方法はありますか?明確にしたいと思います:/

4

1 に答える 1

0

「OrderLines」を遅延ロードする必要があることを宣言する必要があります。FetchPlans API を使用するか、構成で明示的に遅延ロードされる関連付けを宣言できます。

コードのみのマッピングを使用している場合は、ロード動作を定義できます。

orderLineConfiguration.HasAssociation(x => x.Order).WithLoadBehavior(Telerik.OpenAccess.LoadBehavior.Lazy).WithOpposite(c => c.OrderLines);

OrderLines は遅延ロードされます。ここここのドキュメントを参照してください。

于 2013-03-16T00:26:29.630 に答える