2012-04-24 24 views
1

これらは私の実体である...Entity Frameworkの(ネストされたエンティティをロード)

Public Class Account 
    Public Property AccountId As Integer 
    Public Property AccountDescription As String 
    Public Property Transactions As List(Of Transaction) 
End Class 

Public Class Transaction 
    Public Property TransactionId As Integer 
    Public Property AccountId As Integer 
    Public Property TransferAccountId As Integer 
    Public Property TransactionDescription As String 
End Class 

私は今、私はこれを行うことができます知っています。 SingleOrDefault(関数(a)a.AccountId = myAccountId)

ただし、明らかにAccountId = myAccountIdのトランザクションのみが含まれます。しかし、私の場合、私は、移転に関与するものを含むすべての取引が欲しいです。そこで、AccountId = AccountIdまたはTransferAccountId = myAccountIdとなります。アカウントとそのトランザクションと転送トランザクションのリストを1回の呼び出しでどのように読み込むことができますか?

答えて

1

TransactionプロパティがAccountクラスに1つしかないため、モデルでは直接モデルを作成することはできません。このプロパティは、AccountId == IdまたはTransferAccountId == Idのいずれかのアカウントを指しますが、その両方にはなりません。

db.Account.Include("Transactions") 
      .Inclue("TransferTransactions") 
      .SingleOrDefault(Function(a) a.AccountId = myAccountId) 

あなたはドン場合」:それはあなただけの両方の性質のために含める使用されます後、関連するトランザクション用と転送トランザクションの1 - あなたは簡単に両方のタイプをロードしたい場合は、あなたのアカウントの種類上の2つのナビゲーションプロパティを必要とします逆方向に行うことができる第2ナビゲーションプロパティを追加したい。トランザクションと熱心な負荷勘定を照会します。最後のケースとして、アカウントとトランザクションを個別にクエリできます。

関連する問題