无效卡斯特例外NHibernate
我和NHibernate一起工作,我有一些表格,和NUnit一起做测试。 所以,当我想通过IdEmployee或IdSet获取EmployeebySet表中的一些数据时,这种方法有一个问题。我认为问题在于PrimaryKey是一个复合键。(IdeEmployee,IdSet)无效卡斯特例外NHibernate,hibernate,nhibernate,Hibernate,Nhibernate,我和NHibernate一起工作,我有一些表格,和NUnit一起做测试。 所以,当我想通过IdEmployee或IdSet获取EmployeebySet表中的一些数据时,这种方法有一个问题。我认为问题在于PrimaryKey是一个复合键。(IdeEmployee,IdSet) public EmployeebySet GetEmployeebySet\u byideemployee(intideemployee) { 使用(ISession session=NHibernateSessionBu
public EmployeebySet GetEmployeebySet\u byideemployee(intideemployee)
{
使用(ISession session=NHibernateSessionBuilder.OpenSession())
返回会话.Get(ideemployee);
}
但是当我给IdeEmployee=3时,在最后一行出现了这个错误InvalidCastException System.Int32
我能做些什么?由于您处理的是复合键,您必须组织测试以通过两个键:
public EmployeebySet GetEmployeebySet_byIdEmployee(int IdEmployee)
{
using (ISession session = NHibernateSessionBuilder.OpenSession())
return session.Get<EmployeebySet>(IdEmployee);
}
公共EmployeebySet GetEmployeebySet\u ByIdeEmployeeAndSet(int-IdeEmployee,int-IdSet)
{
使用(ISession session=NHibernateSessionBuilder.OpenSession())
{
返回会话。获取(
新雇员名单
{
ideemployee=ideemployee,
IdSet=IdSet
});
}
}
public EmployeebySet GetEmployeebySet_byIdEmployee(int IdEmployee)
{
using (ISession session = NHibernateSessionBuilder.OpenSession())
return session.Get<EmployeebySet>(IdEmployee);
}
public EmployeebySet GetEmployeebySet_byIdEmployeeAndIdSet(int IdEmployee, int IdSet)
{
using (ISession session = NHibernateSessionBuilder.OpenSession())
{
return session.Get<EmployeebySet>(
new EmployeebySet
{
IdEmployee = IdEmployee,
IdSet = IdSet
});
}
}