2010-06-01 6 views
0

Je suis en train d'écrire mon premier programme "Hello World" en utilisant Subsonic, pour lequel j'ai jeté ensemble une simple petite base de données Client/Invoice/InvoiceItem/Product.Clé étrangère subsonique retournant la collection?

La connexion a été établie avec succès dans la base de données et elle a généré toutes les classes ActiveRecord correctes. Mais pour une raison quelconque, la classe Invoice a une propriété appelée Customers, qui renvoie une collection d'objets Customer, même si la table Invoice a un champ CustomerID qui a une clé étrangère à la table Customer. Je m'attendais à une propriété Customer retournant un seul objet Customer.

La même chose se produit pour tous mes FK. Je dois faire quelque chose de mal - mais quoi?

Répondre

1

C'est le comportement attendu. Le premier (et unique) élément de la collection Invoice.Customers sera l'objet Client associé à la clé étrangère.

+0

Pourquoi ce comportement est-il attendu? Je viens du concepteur O/R Linq-To-SQL construit, et qui génère des relations selon les lignes que j'ai décrites comme "comportement attendu". Vous devez admettre que cela a plus de sens logique, non? Il est évident qu'il y avait un problème technique ici qui a forcé une solution de contournement plutôt kludgy - mais pourquoi? –

+0

Je ne sais pas pourquoi c'est ainsi que cela a été implémenté dans SubSonic 3. SubSonic 2 générerait un champ Invoice.Customer comme vous l'avez mentionné. Cependant, vous pouvez ajouter ce champ vous-même dans les modèles T4. – sparks

Questions connexes