2010-11-18 9 views
0

Je suis aux prises avec LLBLGEN et je suppose que ORM en général. J'ai créé une entité, permet d'utiliser un exemple de bibliothèque pour expliquer:LLBLGEN tableau lié pas peupler dans l'entité

Je veux afficher un objet livre et également retourner une liste d'utilisateurs qui ont prêté le livre. donc je dois retourner l'objet livre qui contient une liste d'utilisateurs.

DTO Book:: 
int bookId, 
string bookName 

Je souhaite en outre revenir avec mon livre une collection d'utilisateurs qui ont prêté le livre:

List<user> Loans 
tableau

prêts pourrait ressembler à ceci:

int id 
int userid 
int bookid 

actuellement mon entité de prêts a maintenant créé ceci:

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

im luttant pour comprendre comment cet exemple fonctionnerait dans llblgen. quelqu'un peut-il aider avec des conseils ou me signaler un tutoriel? en ce moment, quand je viens de mettre à jour mon modèle de livre avec un nouveau prêt associé à un livre, im obtenir des erreurs de stackoverflow. Je suppose que cela crée une sorte de boucle en essayant de mettre à jour mon objet Book.

grâce

Répondre

1

J'ai remarqué lors de l'exécution d'un profileur sur SQL que l'instruction sql n'incluait pas d'instructions de jointure sur mes entités relationnelles. ce fut parce que ma requête de domaine na pas inclure des éléments de prélecture pour mes relations, j'ajouté ce qui suit à ma requête:

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

Pour vous assurer, vous êtes à la recherche d'une liste d'entités d'utilisateurs qui ont prêté une entité du livre particulier. Est-ce le bon cas d'utilisation, ou recherchez-vous une liste d'entités utilisateur qui ont emprunté le livre en question? Quoiqu'il en soit, la prise en charge par LLBLGen de ces cas est idéale pour référencer les relations entre entités et utiliser les entités associées rapidement et facilement.

présumant que vous cherchez un livre unique, 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 
} 

Il est aussi simple que vous avez défini vos supposant des relations entre les entités.

+0

Cet exemple suppose que vous utilisez SelfServicing, qui prend en charge le chargement paresseux des collections connexes. Si vous utilisez l'adaptateur, vous devrez récupérer manuellement la collection associée en utilisant les chemins PreFetch. – Matt