Hi All,
I am using FluentNHibernate and have a mapping that contains
components as well as other x-to-x relationships.
Below is my code structure and you can see it's fairly
straightforward.
Since Contact is used in other tables I turned it into a Component.
Also a person can have many employers (or none).
What I am having trouble with is databinding this to a datagridview.
Here's my code that gets all the persons and then binds it to a
gridview.
private void FillDataGridView()
{
ISession session = Database.Current.Session;
this.PersonList = session.CreateCriteria<Person>()
.List<Person>();
this.DataGridViewSearchMain.DataSource = this.PersonList;
session.Close();
}
The problem is I want to treat the objects in my Person table as
columns. Here's what it looks like right now.
http://imgur.com/Fehsp.jpg
Now I know about overriding ToString() but that's not what I want. I
would rather show each individual column from Contact
or at least have some control over what to show.
public class Person
{
public virtual Guid PersonID { get; private set; }
public virtual string Name { get; set; }
public virtual Contact Contact { get; set; }
public virtual IList<Employer> Employers { get; set; }
}
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.PersonID)
.GeneratedBy.Guid();
Component(x => x.Contact);
HasManyToMany(x => x.Employers)
.Table("PersonEmployer")
.ParentKeyColumn("PersonID")
.ChildKeyColumn("EmployerID")
.Cascade.SaveUpdate();
}
}
public class Contact
{
[DisplayName("E-mail")]
public virtual string Email { get; set; }
[DisplayName("Phone #")]
public virtual string Phone { get; set; }
}
public class ContactMap : ComponentMap<Contact>
{
public ContactMap()
{
Map(x => x.Email);
Map(x => x.Phone);
}
}
--
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.