FluentNHibernate, getting 1 column from another table

Posted by puffpio on Stack Overflow See other posts from Stack Overflow or by puffpio
Published on 2010-05-28T16:59:42Z Indexed on 2010/05/28 17:02 UTC
Read the original article Hit count: 308

We're using FluentNHibernate and we have run into a problem where our object model requires data from two tables like so:

public class MyModel
{
   public virtual int Id { get; set; }
   public virtual string Name { get; set; }
   public virtual int FooId { get; set; }
   public virtual string FooName { get; set; }
}

Where there is a MyModel table that has Id, Name, and FooId as a foreign key into the Foo table. The Foo tables contains Id and FooName.

This problem is very similar to another post here: http://stackoverflow.com/questions/1896645/nhibernate-join-tables-and-get-single-column-from-other-table but I am trying to figure out how to do it with FluentNHibernate.

I can make the Id, Name, and FooId very easily..but mapping FooName I am having trouble with. This is my class map:

public class MyModelClassMap : ClassMap<MyModel>
{
   public MyModelClassMap()
   {
      this.Id(a => a.Id).Column("AccountId").GeneratedBy.Identity();
      this.Map(a => a.Name);
      this.Map(a => a.FooId);

      // my attempt to map FooName but it doesn't work
      this.Join("Foo", join => join.KeyColumn("FooId").Map(a => a.FooName));
   }
}

with that mapping I get this error:

The element 'class' in namespace 'urn:nhibernate-mapping-2.2' has invalid child element 'join' in namespace 'urn:nhibernate-mapping-2.2'. List of possible elements expected: 'joined-subclass, loader, sql-insert, sql-update, sql-delete, filter, resultset, query, sql-query' in namespace 'urn:nhibernate-mapping-2.2'.

any ideas?

© Stack Overflow or respective owner

Related posts about nhibernate

Related posts about fluent-nhibernate