Fluent NHibernate Many to one mapping

Posted by Jit on Stack Overflow See other posts from Stack Overflow or by Jit
Published on 2010-03-18T19:48:09Z Indexed on 2010/03/18 19:51 UTC
Read the original article Hit count: 469

I am new to Hibernate world. It may be a silly question, but I am not able to solve it. I am testing many to One relationship of tables and trying to insert record. I have a Department table and Employee table. Employee and Dept has many to One relationship here. I am using Fluent NHibernate to add records. All codes below. Pls help

- SQL Code

create table Dept ( Id int primary key identity, DeptName varchar(20), DeptLocation varchar(20)) create table Employee ( Id int primary key identity, EmpName varchar(20),EmpAge int, DeptId int references Dept(Id))

Class Files

public partial class Dept {

  public virtual System.String

DeptLocation { get; set; }

  public virtual System.String

DeptName { get; set; }

  public virtual System.Int32 Id {

get; private set; }

    public virtual IList<Employee> Employees { get; set; }         }

public partial class Employee { public virtual System.Int32 DeptId { get; set; }

  public virtual System.Int32 EmpAge {

get; set; }

  public virtual System.String EmpName

{ get; set; }

  public virtual System.Int32 Id {

get; private set; }

  public virtual Project.Model.Dept 

Dept { get; set; } }

Mapping Files

public class DeptMapping : ClassMap
{ public DeptMapping() { Id(x => x.Id); Map(x => x.DeptName); Map(x => x.DeptLocation); HasMany(x => x.Employees) .Inverse() .Cascade.All(); } }

public class EmployeeMapping : ClassMap { public EmployeeMapping() { Id(x => x.Id); Map(x => x.EmpName); Map(x => x.EmpAge); Map(x => x.DeptId); References(x => x.Dept) .Cascade.None(); } }

My Code to add

try { Dept dept = new Dept(); dept.DeptLocation = "Austin"; dept.DeptName = "Store";

            Employee emp = new Employee();
            emp.EmpName = "Ron";
            emp.EmpAge = 30;

            IList<Employee> empList = new List<Employee>();
            empList.Add(emp);
            dept.Employees = empList;
            emp.Dept = dept;

            IRepository<Dept> rDept = new Repository<Dept>();
            rDept.SaveOrUpdate(dept);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

Here i am getting error as InnerException = {"Invalid column name 'Dept_id'."}

Message = "could not insert: [Project.Model.Employee][SQL: INSERT INTO [Employee] (EmpName, EmpAge, DeptId, Dept_id) VALUES (?, ?, ?, ?); select SCOPE_IDENTITY()]"

© Stack Overflow or respective owner

Related posts about fluent

Related posts about nhibernate