InvalidCastException NHibernate

Table EmployeebySet: [**IdEmployee, IdSet**, Name, Date]
Table Employee: [IdEmployee, Name, Age...]
Table Set: [IdSet, Date, Name...]

Saya bekerja dengan NHibernate, saya memiliki beberapa tabel, dan melakukan tes dengan NUnit. Jadi, saya mempunyai masalah dalam metode ini, ketika saya ingin mendapatkan beberapa data di tabel EmployeebySet oleh IdEmployee atau IdSet. Saya pikir masalahnya adalah karena PrimaryKey adalah gabungan. (IdKaryawan, IdSet)

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

Tetapi ketika saya memberikan IdEmployee = 3, di baris terakhir terjadi kesalahan ini InvalidCastException System.Int32

Apa yang bisa saya lakukan?.


person ale    schedule 14.06.2011    source sumber


Jawaban (1)


Karena Anda berurusan dengan kunci komposit, Anda harus menyusun pengujian Anda untuk meneruskan kedua kunci tersebut:

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