Ich bin komplett neu in NHibernate. Ich habe viele Fragen mit demselben Titel gesehen, aber ich kann den genauen Fehler nicht finden. Ich verwende NHibernate mit SQL Server 2012.Das Mapping-Dokument konnte nicht kompiliert werden: NHibernate
Mein hibernate.cfg.xml
:
<?xml version="1.0" encoding="utf-8" ?>
<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="dialect">NHibernate.Dialect.MsSql2012Dialect</property>
<property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=cafePOSdb;Integrated Security=True;</property>
<property name="show_sql">true</property>
<mapping assembly="CafePOS" />
</session-factory>
</hibernate-configuration>
Mein Mapping-Modell:
using System;
using System.Text;
using System.Collections.Generic;
namespace CafePOS
{
public class CafeTableGroup
{
public CafeTableGroup() { }
public decimal cafe_table_group_id { get; set; }
public string cafe_table_group_name { get; set; }
public string remarks { get; set; }
public bool? is_active { get; set; }
public int? group_position { get; set; }
public string color { get; set; }
}
}
Meine hbm.xml
Datei:
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="CafePOS" namespace="CafePOS" xmlns="urn:nhibernate-mapping-2.2">
<class name="cafe_table_group" table="cafe_table_group" lazy="true" >
<id name="cafe_table_group_id" column="cafe_table_group_id">
<generator class="identity" />
</id>
<property name="cafe_table_group_name">
<column name="cafe_table_group_name" sql-type="nvarchar" not-null="false" />
</property>
<property name="remarks">
<column name="remarks" sql-type="varchar" not-null="false" />
</property>
<property name="is_active">
<column name="is_active" sql-type="bit" not-null="false" />
</property>
<property name="group_position">
<column name="group_position" sql-type="int" not-null="false" />
</property>
<property name="color">
<column name="color" sql-type="nvarchar" not-null="false" />
</property>
<bag name="cafe_table">
<key column="cafe_table_group_id" />
<one-to-many class="cafe_table" />
</bag>
</class>
</hibernate-mapping>
Meine Session Klasse:
namespace CafePOS
{
public sealed class SessionFactory
{
private static volatile ISessionFactory iSessionFactory;
private static object syncRoot = new Object();
public static ISession OpenSession
{
get
{
if (iSessionFactory == null)
{
lock (syncRoot)
{
if (iSessionFactory == null)
{
Configuration configuration = new Configuration();
Assembly assembly = Assembly.GetCallingAssembly();
configuration.AddAssembly(assembly);
iSessionFactory = configuration.BuildSessionFactory();
}
}
}
return iSessionFactory.OpenSession();
}
}
}
}
Dies ist die Funktion, die ich zu implementieren versucht:
public static string AddNewTableGroup(CafeTableGroup group)
{
using (ISession session = SessionFactory.OpenSession)
{
using (ITransaction transaction = session.BeginTransaction())
{
try
{
session.Save(group);
transaction.Commit();
return "1";
}
catch (Exception ex)
{
transaction.Rollback();
session.Close();
throw ex.InnerException;
}
}
}
}
ich auf der Linie
configuration.AddAssembly(assembly);
zeigt den Fehler im Titel erhalten Fehler:
konnte nicht Kompilieren Sie das Zuordnungsdokument: NHibernate
Inner Ausnahmemeldung:
kann den Dialekt in der Konfiguration
Vielen Dank im Voraus nicht finden.
sir Ändern ich Visual Studio 2015 und hibernate.cfg.xml bin mit in der gleichen Position wie App.Config ist. –
Ok - konnte Ihre Projektdateien nicht sehen, also schlug ich vor. Ich habe einen anderen gefunden. Eine andere Antwort schreiben. Schätzen Sie, wenn Sie bestätigen können, ob es funktioniert. – HGMamaci
Sorry zu sagen, Sir, aber das hat nicht funktioniert.Ich bin darin stecken für ein paar Stunden.Bitte helfen Sie mir, wenn Sie können –