【发布时间】:2013-12-28 07:25:52
【问题描述】:
我正在使用Nhibernate 并希望将值保存在数据库中,如下所示。
这是我的商店课程
public class Store
{
public virtual int Id { get; protected set; }
public virtual string Name { get; set; }
public virtual Employee Staff { get; set; }
public Store()
{ Staff = new Employee();
}
}
这是employee class
public class Employee
{
public virtual int Id { get; protected set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual Store Store { get; set; }
}
storemap作为
public class StoreMap:ClassMap<Store>
{
public StoreMap()
{
Id(x => x.Id);
Map(x => x.Name);
HasOne(x => x.Staff).WithForeignKey("store");
HasManyToMany(x => x.Products).Cascade.All(); }
}
}
和employee map
public class EmployeeMap : ClassMap<Employee>
{
public EmployeeMap ()
{
Id(x => x.Id);
Map(x => x.FirstName);
Map(x => x.LastName);
References(x => x.Store ).WithColumns("store");
References(x => x.Store2).WithColumns("store2");
}
}
在存储表中,我只保存表的名称。在员工表中,我保存了员工的firstname、lastaname 以及商店的foreignkey,以了解该员工属于哪个表。
我写了这行代码
using (var trans = session.BeginTransaction())
{
var ali = new Employee { FirstName = "fname", LastName = "lname", store=2 };
session.SaveOrUpdate(ali);
trans.Commit();
}
但这不能隐式转换 int int models.store Employee.Store。这仅适用于 store=2 首先和 lastaname 正在工作。请帮忙
【问题讨论】:
标签: c# sql nhibernate