You right, Paul. In the Table AB the column idB is unique. I will try to ask the NH users and if I get an answer maybe come back to try to user fluent :). Thanks, guys
On Jan 25, 12:43 pm, Paul Batum <[email protected]> wrote: > Just to offer a different perspective to Hudson's: > > I do not agree that our job stops with finding the correct NH tag, nor > should we let NH do all the worrying about how things are implemented in the > database. I'm all in favour of building a domain model that suits the > developers needs AND a data model that satisfies the DBA's and/or the > performance requirements of the system. Often as developers we have no > control over the database schema at all, be it due to legacy systems or > other factors! The beauty of a tool like NH is that it gives you the power > to have the best of both worlds, where the same domain model can be mapped > to many possible schemas, and vice versa. > > That's where the disagreement ends though. He's right that the proposed > schema doesn't make a lot of sense for the classes you've shown us. Is there > a unique constraint on column idB of table AB? That would make a little more > sense in that it would ensure there cannot be multiple A's associated with a > particular B. I suspect that there IS a way to get NH to do what you want > but I'm not sure how, and whether it will be possible with FNH. You might be > better off posting to the NH users > list<http://groups.google.com/group/nhusers> and > asking about the xml mapping for those tables and classes, if it exists. The > readers of that list are better versed in NH's more esoteric mapping > features. If you do manage to find some xml that works, we can investigate > how to get it done with FNH. > > On Sat, Jan 23, 2010 at 3:13 AM, Hudson Akridge > <[email protected]>wrote: > > > 1.) Why do you want 3 tables as a result? That's not how your objects are > > composed > > 2.) HasManyToMany(). But that's not going to work exactly because in order > > to have a join table created and persisted correctly, you should have a > > reference on both sides to the HasManyToMany. Plus, it'll need to be a > > collection reference like a ICollection<A> refObjs; or something like that. > > You can technically do it with only one ManyToMany on the B side, but it's > > not advised. > > 3.) What you're really looking for is a References() mapping (many-to-one > > in NH terms). That is how you would make that association. You will end up > > with a null if there's no reference, but that's ok because of the next > > point. > > 4.) As a suggestion, don't worry too much about how your database is > > created as a result of your mappings. The point of Domain Driven design is > > that it's domain first, Data second. Associate your domain objects > > correctly, and there's an NH mapping for you. If you try and do both domain > > and data driven design simultaniously, one of the two of them is going to be > > competing with the other and creating friction. Your database doesn't have > > to be fully normalized to be mapped correctly. In some cases, that's a bad > > solution since it'll significantly impact performance. You want to map your > > domain to the appropriate NHibernate mapping tags. Let NH worry about how it > > implements those in the database. Your job stops when you find the correct > > NH tag. In this case, it's many-to-one (References in FNH). > > > On Fri, Jan 22, 2010 at 4:51 AM, Dana Efros <[email protected]>wrote: > > >> Hi. I have to 2 entities: > > >> class A{ > >> int id; > >> string name;} > > >> class B{ > >> int id; > >> A refObj; > >> string name;} > > >> How can I map this 2 classes so I will have 3 tables: > >> table A with 2 columns: id and name > >> table B with 2 columns: id and name > >> table AB with 2 columns: idA and idB > > >> In the AB table I need to have a row only when refObj will not be > >> null.The field refObj from the B entity will have values only > >> occasionally and I don't want to have a column in the B table with > >> null value for almost all the rows > > >> With a many to many relations I know how, but with a reference ... > >> Thanks > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Fluent NHibernate" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]<fluent-nhibernate%[email protected]> > >> . > >> For more options, visit this group at > >>http://groups.google.com/group/fluent-nhibernate?hl=en. > > > -- > > - Hudson > >http://www.bestguesstheory.com > >http://twitter.com/HudsonAkridge > > > -- > > You received this message because you are subscribed to the Google Groups > > "Fluent NHibernate" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<fluent-nhibernate%[email protected]> > > . > > For more options, visit this group at > >http://groups.google.com/group/fluent-nhibernate?hl=en. -- You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en.
