У меня есть 3 таблицы в образце. я собираюсь присоединиться к 2 столу, но у меня есть проблема
следующий мой код:
<?xml version="1.0"?>
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">Server=(local);database=human;Integrated Security=SSPI;</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
using System.Collections.Generic;
using System.Text;
using System;
namespace human {
public class TblStudent {
public TblStudent() { }
public virtual int ID { get; set; }
public virtual IList<TblTerm> TblTerms { get; set; }
public virtual string name { get; set; }
public virtual string lastname { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using FluentNHibernate.Mapping;
namespace human {
public class TblStudentMap : ClassMap<TblStudent> {
public TblStudentMap() {
Table("TblStudent");
LazyLoad();
Id(x => x.ID).GeneratedBy.Identity().Column("ID");
Map(x => x.name).Column("name");
Map(x => x.lastname).Column("lastname");
HasMany(x => x.TblTerms);
}
}
}
using System.Collections.Generic;
using System.Text;
using System;
namespace human {
public class TblTerm {
public TblTerm() { }
public virtual int ID { get; set; }
public virtual TblLesson TblLesson { get; set; }
public virtual TblStudent TblStudent { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using FluentNHibernate.Mapping;
namespace human {
public class TblTermMap : ClassMap<TblTerm> {
public TblTermMap() {
Table("TblTerm");
LazyLoad();
Id(x => x.ID).GeneratedBy.Identity().Column("ID");
References(x => x.TblLesson).Column("LessonID");
References(x => x.TblStudent).Column("StudentID");
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using FluentNHibernate.Mapping;
namespace human {
public class TblTermMap : ClassMap<TblTerm> {
public TblTermMap() {
Table("TblTerm");
LazyLoad();
Id(x => x.ID).GeneratedBy.Identity().Column("ID");
References(x => x.TblLesson).Column("LessonID");
References(x => x.TblStudent).Column("StudentID");
}
}
}
private void button_JoinSelect_Click(object sender, EventArgs e)
{
var cfg = new Configuration();
PersistenceModel pm = new PersistenceModel();
pm.AddMappingsFromAssembly(typeof(human.TblStudent).Assembly);
pm.Configure(cfg);
ISessionFactory factory = cfg.BuildSessionFactory();
using (var session = factory.OpenSession())
{
using (var trans = session.BeginTransaction())
{
var query = session.QueryOver<TblStudent().JoinQueryOver<TblTerm>
(c=> c.TblTerms).List();
trans.Commit();
dataGridView1.DataSource = query;
}
}
}
Моя ошибка:
NHibernate.Exceptions.GenericADOException: не удалось выполнить запрос
[SELECT this_.ID, как ID1_1_, this_.name, как name1_1_, this_.lastname, как lastname1_1_, tblterm1_.ID, как ID2_0_, tblterm1_.LessonID, как LessonID2_0_, tblterm1_.StudentID, как StudentID2_0_ ОТ TblStudent this_ внутреннее соединение TblTerm tblterm1_ на this_.ID = tblterm1_ .TblStudent_id]
[SQL: ВЫБЕРИТЕ this_.ID в качестве ID1_1_, this_.name в качестве name1_1_, this_.lastname в качестве фамилии1_1_, tblterm1_.ID в качестве ID2_0_, tblterm1_.LessonID в качестве LessonID2_0_, tblterm1_.StudentID в качестве студента TID_0_1 = tblterm1_.TblStudent_id] ---> System.Data.SqlClient.SqlException: Неверное имя столбца 'TblStudent_id'.
в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection)
в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое breakConnection)
в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning ()
в System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
в System.Data.SqlClient.SqlDataReader.ConsumeMetaData ()
в System.Data.SqlClient.SqlDataReader.get_MetaData ()
в System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, логический returnStream, логический асинхронный)
в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, логический returnStream, метод String, результат DbAsyncResult)
в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, логический returnStream, метод String)
в System.Data.SqlClient.SqlCommand.ExecuteReader (поведение CommandBehavior, метод String)
в System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (поведение CommandBehavior)
в System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader ()
в NHibernate.AdoNet.AbstractBatcher.ExecuteReader (IDbCommand cmd) в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ AdoNet \ AbstractBatcher.cs: строка 247
в NHibernate.Loader.
в NHibernate.Loader.
в NHibernate.Loader.
в NHibernate.Loader.Loader.DoList (сеанс ISessionImplementor, QueryParameters queryParameters) в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Loader \ Loader.cs: строка 1694
--- Конец внутренней трассировки стека исключений ---
в NHibernate.Loader.Loader.DoList (сеанс ISessionImplementor, QueryParameters queryParameters) в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Loader \ Loader.cs: строка 1703
в NHibernate.Loader.Loader.
в NHibernate.Loader.в NHibernate.Criterion.QueryOver`1.NHibernate.IQueryOver.List () в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Criterion \ QueryOver.cs: строка 198 в human.Form1.button_JoinSelect_Click (Отправитель объекта,EventArgs e) в E: \ desktop \ Human \ human \ human \ Form1.cs: строка 84
Пожалуйста, сообщите мне