【问题标题】:InvalidCastException NHibernateInvalidCastException NHibernate
【发布时间】:2011-06-15 03:53:17
【问题描述】:
Table EmployeebySet: [**IdEmployee, IdSet**, Name, Date]
Table Employee: [IdEmployee, Name, Age...]
Table Set: [IdSet, Date, Name...]

我正在使用 NHibernate,我有一些表格,并使用 NUnit 进行测试。 所以,当我想通过IdEmployee或IdSet获取EmployeebySet表中的一些数据时,我在这个方法中遇到了问题。我认为问题是因为 PrimaryKey 是复合的。 (IdEmployee,IdSet)

public EmployeebySet GetEmployeebySet_byIdEmployee(int IdEmployee) 
        {
            using (ISession session = NHibernateSessionBuilder.OpenSession())
                return session.Get<EmployeebySet>(IdEmployee);
        }

但是当我给 IdEmployee = 3 时,在最后一行出现这个错误 InvalidCastException System.Int32

我能做什么?

【问题讨论】:

    标签: hibernate nhibernate


    【解决方案1】:

    由于您正在处理复合键,因此您必须构建测试以传递两个键:

    public EmployeebySet GetEmployeebySet_byIdEmployeeAndIdSet(int IdEmployee, int IdSet)
    {
        using (ISession session = NHibernateSessionBuilder.OpenSession())
        {
            return session.Get<EmployeebySet>(
                new EmployeebySet 
                {
                    IdEmployee = IdEmployee,
                    IdSet = IdSet
                });
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多