2010-11-18 17 views
0

私はLLBLGENに苦労しています。私はORMを一般的に推測しています。 私はエンティティを作成しました。図書館の例を使って説明することができます:LLBLGEN関連配列が実体に入っていません

私は本のオブジェクトを表示し、その本を貸し出したユーザーのリストを返したいと思います。 だから私はユーザーのリストを含む本のオブジェクトを返す必要があります。

DTO Book:: 
int bookId, 
string bookName 

さらに私は私の本と本を貸与しているユーザーのコレクションを戻したい:表は次のようになります

List<user> Loans 

ローン:

int id 
int userid 
int bookid 

現在、私のローンエンティティこれを作成しました:

DTO Loans 
int id 
User user // user entity 
Book book // book entity 

は、この例がllblgenでどのように動作するかを理解するのに苦労しています。誰でも指導を助けたり、チュートリアルの方法で私を指摘できますか? 現時点で、本に関連する新しいローンを使用してモデルブックを更新しようとすると、スタックオーバーフローエラーが発生します。ブックオブジェクトを更新しようとすると、これが何らかのループを作成していると思われます。

おかげ

答えて

1

SQLでプロファイラーを実行しているときに、SQLステートメントには関係ステートメントに結合ステートメントが含まれていないことが気付きました。

 var query = new DomainSearch<T> 
        {  
         SearchText = searchText, 
         PrefetchItems = 
          { 
           new Prefetch(typeof(Users)) 
          } 
        }; 
0

を確認するためには、あなたは、特定のブックエンティティを貸与しているユーザーエンティティのリストを探しています。これは正しいユースケースですか、特定の本を借りたユーザーエンティティのリストを探していますか?

LLBLGenは、エンティティ間の関係を参照したり、関連するエンティティをすばやく簡単に使用することができます。

あなたはユニークBookId/ISBN著書に/ etc ....

// Get the specific book entity 
BookEntity book = new BookEntity(bookId); 

foreach(UserEntity user in book.users) 
{ 
    // do stuff with list of users 
} 

それはあなたがあなたのエンティティ間の関係を定義したと仮定だけで簡単ですを探していると仮定。

+0

この例では、関連のコレクションの遅延ロードをサポートしていSelfServicingを、使用している前提としています。私の関係をプリフェッチ項目が含まdidntは自分のドメインのクエリは、私は私のクエリに以下を追加するので これでした。 Adapterを使用している場合は、PreFetchパスを使用して、手動で関連するコレクションを手動でフェッチする必要があります。 – Matt

関連する問題