CONGRATULATION!!! You have discovered one thing I don't know about NH. Thanks you very much!!!
On Fri, Dec 3, 2010 at 5:13 PM, David McClelland <[email protected] > wrote: > I did figure out how to get use only one SELECT statement by > incorporating a LEFT JOIN into the query. I used the optional > attribute instead of the fetch attribute: > > <join table="EntityAddress" optional="true"> > > So... now the nicely clean EntityAndPrimaryAddress is returned even > if there is only an Entity with no corresponding address. > > - David > > > On Dec 3, 12:51 pm, Jason Meckley <[email protected]> wrote: > > you could map the address to a private field and expose those > > properties on the EntityAndPrimaryAddress object. the public api > > remains clean. the "ugly code" remain encapsulated within the > > EntityAndPrimaryAddress object. > > > > public class EntityAndPrimaryAddress > > { > > private Address address; > > > > public virtual int EntityId { get; set; } > > public virtual int CreatedBy { get; set; } > > public virtual DateTime CreatedDate { get; set; } > > public virtual int ModifiedBy { get; set; } > > public virtual DateTime ModifiedDate { get; set; } > > public virtual int UpdateCounter { get; set; } > > > > public virtual bool IsPrimary > > { > > get {return address.IsPrimary;} > > set {address.IsPrimary = value;} > > } > > ... the rest of the properties. > > > > } > > > > i don't see what other options you have. when working with a legacy > > database details of the database will spill into the domain. the only > > way to prevent this is to refactor the database along with the code. > > > > something else to consider is why querying with a single select is a > > problem. > > > > On Dec 3, 1:06 pm, Fabio Maulo <[email protected]> wrote: > > > > > > > > > > > > > > > > > sure. > > > but you know... the <join> is only a "licenza poetica" of ORM for > legacy DB > > > not designed following ORM. > > > > > When you say that the state of an entity is spanned in two tables it > mean > > > exactly that to have the state of an entity NH have to join (inner) two > > > tables; there isn't another option, NH have to read all properties. > > > Perhaps you can try using lazy=true in each property and see what will > > > happen, perhaps it will work but AFIK we don't have a specific test for > this > > > situation. > > > > > P.S. ORM= Object Relational *Mapping* > > > > > On Fri, Dec 3, 2010 at 2:36 PM, David McClelland < > [email protected] > > > > > > wrote: > > > > But a <one-to-one> won't give me the nicely-flattened entity that I'm > > > > interested in: > > > > > > public class EntityAndPrimaryAddress > > > > { > > > > public virtual int EntityId { get; set; } > > > > public virtual int CreatedBy { get; set; } > > > > public virtual DateTime CreatedDate { get; set; } > > > > public virtual int ModifiedBy { get; set; } > > > > public virtual DateTime ModifiedDate { get; set; } > > > > public virtual int UpdateCounter { get; set; } > > > > public virtual bool IsPrimary { get; set; } > > > > public virtual string Name { get; set; } > > > > public virtual string Line1 { get; set; } > > > > public virtual string Line2 { get; set; } > > > > public virtual string City { get; set; } > > > > public virtual string State { get; set; } > > > > public virtual string PostalCode { get; set; } > > > > } > > > > > > -- > > > > 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]<nhusers%[email protected]> > <nhusers%[email protected]<nhusers%[email protected]>> > > > > . > > > > For more options, visit this group at > > > >http://groups.google.com/group/nhusers?hl=en. > > > > > -- > > > Fabio Maulo > > -- > 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]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > -- Fabio Maulo -- 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.
