Alternatively, unless your Address must have it's own identity, perhaps it should be mapped as a component? http://nhforge.org/doc/nh/en/index.html#components
many-to-one might sound surprising but if you have a table structure like: Person (Id, AdressId, ...), Address(Id, ...) This represents a relational many-to-one, even if you don't actually reuse address instances for multiple persons etc. /Oskar 2012/12/27 Gunnar Liljas <[email protected]>: > Can one Address instance be shared by several Persons and/or > Subsidiaries? In that case, you clearly don't have a one-to-one > relation. One-to-one is very rare. > > What you want is very likely a many-to-one mapping. > > /G > > 2012/12/27 Viktor Engelmann <[email protected]>: >> Hi everyone, >> >> I'm relatively new to NHibernate, but I'm a graduate computer scientist and >> after nearly a whole day of searching for an answer to my problem, I'm >> asking myself >> >> "How can this be so hard!?" >> >> I have multiple classes, say class A and class B, where A has an instance of >> B as property like >> public class A : SomeBaseClass >> { >> virtual public Int64 ID {get; set;} >> virtual public string foo {get; set;} >> virtual public B my_B_instance {get; set;} >> } >> public class B : SomeBaseClass >> { >> virtual public Int64 ID {get; set;} >> virtual public string bar {get; set;} >> } >> >> as you might notice, B does NOT have a reference to an A. >> >> Now I want to map the classes. First I tried something like >> <property name="my_B_instance"/> >> because the Getting Started Tutorial is too damn busy confusing the >> NHibernate tutorial for an NUnit tutorial (and getting me confused about >> which code is for NHibernate and which code is for NUnit) to mention that >> "property" is only for primitive types. >> It took me hours to figure out why I got all the "Could not determine the >> type of ..." exceptions! >> >> So with far too much googeling, I found out, that >> <one-to-one .../> >> should be the answer, BUT before even trying this, I found that one-to-one >> mappings must be bidirectional (so B would HAVE TO have a reference to an >> A). >> In my project, A=Person, B=Address and other classes like Subsidiary also >> have an Address, so referencing Person in Address would be complete >> nonsense. >> >> I got lost in the 500 page list of options >> >> Other "solutions" i have found, suggest using composite-id's or that my >> classes should implement IUserType. In both cases I would have to override >> the methods that NHibernate calls. >> I will not do that, because handling a fundamental thing like a reference to >> one class as property of another class CAN NOT BE SO HARD! >> >> And I haven't even started looking into inheritance. God have mercy on my >> soul! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "nhusers" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/nhusers/-/ocaC5W0CZtgJ. >> 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/nhusers?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" 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/nhusers?hl=en. > -- You received this message because you are subscribed to the Google Groups "nhusers" 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/nhusers?hl=en.
