Nhibernate - getting single column from other table
- by Muhammad Akhtar
I have following tables
Employee: ID,CompanyID,Name //CompanyID is foriegn key of Company Table
Company: CompanyID, Name
I want to map this to the following class:
public class Employee
{
public virtual Int ID { get; set; }
public virtual Int CompanyID { get; set; }
public virtual string Name { get; set; }
public virtual string CompanyName { get; set; }
protected Employee() { }
}
here is my xml class
<class name="Employee" table="Employee" lazy="true">
<id name="Id" type="Int32" column="Id">
<generator class="native" />
</id>
<property name="CompanyID" column="CompanyID" type="Int32" not-null="false"/>
<property name="Name" column="Name" type="String" length="100" not-null="false"/>
What I need to add in xml class to map CompanyName in my result?
here is my code...
public ArrayList getTest()
{
ISession session = NHibernateHelper.GetCurrentSession();
string query = "select Employee.*,(Company.Name)CompanyName from Employee inner join Employee on Employee.CompanyID = Company.CompanyID";
ArrayList document = (ArrayList)session.CreateSQLQuery(query, "Employee", typeof(Document)).List();
return document;
}
but in the returned result, I am getting CompanyName is null is result set and other columns are fine.
Note:In DB, tables don't physical relation
Please suggest my solution ------
Thanks