2010-05-01 11 views
0

Je réécris l'application de ASP.NET à Silverlight et utiliser NHibernate 2. tables dans ma db ressemble à ceci: alt text http://img268.imageshack.us/img268/4940/tablesqp.jpgavec table de correspondance dans NHibernate

Dans le tableau Dziecko je référence à id de Opiekun et Grupy . En ASP ça me convient mais dans les vidéos Summer avec NHibernate je vois que Stephen Bohlen en échange utilise un objet de ce type, pour moi son Opiekun et Grupy.Mais dans SQL Server je ne peux pas définir de type d'objet, tant mieux c'est seulement map id [je pourrais problème d'interrogation pour id] et ou autre chose ?? En utilisant tous les objets de type spécifique est l'efficacité? Nous devons interroger tous les objets en échange seulement int type d'id?

Répondre

1

(je l'espère, je l'ai bien compris votre question.)

Les relations dans votre base de données sont toujours définies dans les types de bases de données, probablement soit un int ou uniqueidentifer dans le cas des colonnes de clé étrangère. La base de données ne doit rien savoir des objets de transfert de données que NHibernate renvoie à votre code d'application. Lorsque vous mappez les colonnes de clé étrangère dans vos objets de transfert de données à l'aide de ManyToOne, etc., vous spécifiez le type de l'objet car NHibernate sait que la relation sera toujours située entre la colonne de clé étrangère que vous spécifiez dans l'attribut ManyToOne et le Id (clé primaire) du type d'objet à renvoyer. Cela vous évite d'avoir à faire des requêtes supplémentaires pour renvoyer des entités parents ou enfants - NHibernate effectue automatiquement pour vous un JOIN et renvoie les informations relationnelles sous la forme d'une hiérarchie d'objets au lieu d'un ensemble de valeurs d'ID.

Questions connexes