Following the KISS principle when mapping using Fluent NHibernate, I find doing table per class (1 to 1) for everything works very well, easy to understand, and simple to maintain. For your information, I'm developing a complex ASPNET MVC web application that has 24 tables (24 classes). One more thing, I don't recommend getting into subclass (inherited/derived class) approach because classes represent your database tables (database don't do polymorphism).
Sincerely, William Chang http://www.williamchang.org On Jan 7, 1:10 am, Olga <olgaru...@gmail.com> wrote: > Thanks everyone, i'm also thought that mapping in separate classes > will be the solution, I just wanted to be sure that ther is no other > way. > > On Jan 6, 4:38 pm, Hudson Akridge <hudson.akri...@gmail.com> wrote: > > > > > > How can I define that the related column in the CUSTOMER table will be > > > CustomerTypeCode and not CustomerId? (if I can at all) > > > I don't believe you can. The table you're performing a join on uses the PK, > > while the table you're joining to can be defined by a KeyColumn. > > Ref:http://ayende.com/Blog/archive/2009/04/20/nhibernate-mapping-ltjoingt... > > > What it really looks like you're trying to do here, is a Many-To-One > > (References() in FNH). I would recommend a mapping class for CustomerType, > > as a class, and define the Id(x=> x.CustomerType). Then map a References(x=> > > x.CustomerType, "CustomerTypeCode") on the Customer side. This should give > > you what you want. A Join is for when you have two tables, that contain the > > same information for an object. In this case, Customer, and CustomerType > > should be two separate classes in your object model. Doing that will allow > > you to represent them in FNH/NH much easier. > > > On Wed, Jan 6, 2010 at 6:53 AM, Paul Batum <paul.ba...@gmail.com> wrote: > > > I can't find anything in the nhibernate documentation that indicates > > > how you would do this with the xml. You might be best served asking on > > > the nhusers list to determine the necessary xml so that we can then > > > help you map it with FNH. > > > > On Wed, Jan 6, 2010 at 11:25 PM, Olga <olgaru...@gmail.com> wrote: > > > > Hello, > > > > > I have two tables that I want to map to one class that will looks > > > > like: > > > > > CUSTOMER_INFO_CLASS.cs > > > > ---------------------- > > > > Id (CUSTOMER table) > > > > CustomerName (CUSTOMER table) > > > > CustomerTypeDesc (CUSTOMER_TYPE table) > > > > I tried to do it with join, as follows: > > > > > Table("CUSTOMER"); > > > > > Id(x => x.ID).Length(10).Column("CustomerId"); > > > > Map(x => x.CustomerName); > > > > > Join("CUSTOMER_TYPE", m => > > > > { > > > > m.Optional(); > > > > m.Map(x => x.CustomerTypeDesc); > > > > m.KeyColumn("CustomerType"); > > > > }); > > > > The problem is that the field with whom I'm trying to link the two > > > > tables is not a primary key in any of them. (And by default the join > > > > done by the field that defined as ID) So I found that for the > > > > CUSTOMER_TYPE table I can define the field by “KeyColumn”. > > > > How can I define that the related column in the CUSTOMER table will be > > > > CustomerTypeCode and not CustomerId? (if I can at all) > > > > > At the end the sql query should looks like: > > > > > Select Id, CustomerName, CustomerAddress, CustomerTypeDesc > > > > From CUSTOMER t1 > > > > Left join CUSTOMER_TYPE t2 > > > > On t1.CustomerTypeCode = t2.CustomerType > > > > > -- > > > > You received this message because you are subscribed to the Google > > > > Groups > > > "Fluent NHibernate" group. > > > > To post to this group, send email to fluent-nhibern...@googlegroups.com. > > > > To unsubscribe from this group, send email to > > > fluent-nhibernate+unsubscr...@googlegroups.com<fluent-nhibernate%2Bunsubscr > > > ...@googlegroups.com> > > > . > > > > 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 fluent-nhibern...@googlegroups.com. > > > To unsubscribe from this group, send email to > > > fluent-nhibernate+unsubscr...@googlegroups.com<fluent-nhibernate%2Bunsubscr > > > ...@googlegroups.com> > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/fluent-nhibernate?hl=en. > > > -- > > - Hudsonhttp://www.bestguesstheory.comhttp://twitter.com/HudsonAkridge-Hide > > quoted text - > > > - Show quoted text -
-- You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to fluent-nhibern...@googlegroups.com. To unsubscribe from this group, send email to fluent-nhibernate+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en.