Question

Je souhaite utiliser SubSonic (2.2) dans une application que je suis en train de construire parce que j'aime sa simplicité et qu'elle traite tout type de requête dont je peux prévoir le besoin. Dans le même temps, je souhaite que les couches supérieures de mon application soient découplées des types Subsonic. Je veux renvoyer uniquement les objets Plain Old C # et transmettre également des POCO à enregistrer.

Mais voici le problème: je veux que mes propriétés POCO aient des propriétés chargées par Lazy pour les collections enfants et les objets parents basées sur les relations FK. Je pense que je dois en quelque sorte placer un objet Subsonic SqlQuery dans un membre privé de mon POCO et l’utiliser en interne dans le getter pour une propriété chargée paresseuse.

Des idées sur la manière de mettre en œuvre cela spécifiquement avec SubSonic? Quelqu'un a déjà fait ça avant?

Je me rends compte que la prochaine version majeure de SubSonic le fera immédiatement, mais cela semble être au moins dans quelques mois.

Était-ce utile?

La solution 4

Ne pourrait jamais trouver un bon moyen de faire cela. Subsonic 3 est très joli et résoudrait le problème, mais dans l’intervalle nous est allé avec NHibernate .

Autres conseils

J'utilise RepositoryRecord dans SubSonic, qui est "la plupart du temps". poco. Ensuite, je crée des partiels pour les classes qui chargent l’autre classe lorsqu’une propriété est sélectionnée.

Partial Public Class Book

Private _Author as Database.Author 
Property Author() as Database.Author
  Get
     If _Author is nothing then
       ' Load the author class here.
     End if
     return _Author
  End get
  Set
     ....
  End Set
End Property
End Class

Vous pouvez utiliser l'attribut:

  

tableBaseClass = " RepositoryRecord &

J'ai bien peur de ne pas savoir comment cela gère le chargement paresseux. Vous pouvez voir le le message de Rob Conery à ce sujet pour plus de détails.

Ce que vous voulez n’est pas dans la version 2.x. Vous pourrez peut-être tirer le meilleur parti de votre chemin en modifiant les modèles (j’ai des exemples de propriétés chargées paresseux sur mon blog ). Une autre option consiste à construire vos pocos, puis à construire des classes à mapper à partir des classes et requêtes générées par SubSonic vers votre modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top