Доброе время вам)
У меня возникла проблема с данной технологией.
Есть классы и нужно реализовать работу с БД через NHibernate.
Вот код класса User.cs:
Код:
public class User : UserBase, INotifyPropertyChanged
{
public override string Error
{
get
{
if (result == null)
return null;
else
throw new Exception(result);
}
}
public override string Name
{
get { return name; }
set
{
if (value.IsEmpty())
GoException("Имя");
else name = value;
}
}
public override string LastName
{
get
{
return lastName;
}
set
{
if (value.IsEmpty())
GoException("Фамилия");
else
lastName = value;
}
}
public override string Login
{
get { return login; }
set
{
if (value.IsEmpty())
GoException("Логин");
else login = value;
}
}
public override string Password
{
get { return password; }
set
{
if (value.IsEmpty())
GoException("пароль");
else password = value;
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
public override int Status
{
get { return this.status; }
set
{
this.status = value;
NotifyPropertyChanged("Status");
}
}
public override int TypeId
{
get { return typeId; }
set {
if (value==null)
GoException("Неверный тип");
else typeId = value;
}
}
private void GoException(string cField)
{
throw new Exception("Обязательное поле: " + cField + " не задано");
}
}
А вот код User.hbm.xml:
Код:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="UManager.Domain.Default"
namespace="UManager.Domain.Default">
<class name="UManager.Domain.Default.User" table="userlist" lazy="false">
<id name="Id" column="id" type="int">
<generator class="identity" />
</id>
<property name="Name" column="name" type="string" not-null="true" />
<property name="LastName" column="lastname" type="string" not-null="true" />
<property name="Login" column="login" type="string" not-null="true" />
<property name="Password" column="password" type="string" not-null="true"/>
<property name="AccessAllowed" column="accessallowed" type="int" not-null="true" />
<property name="TypeId" column="typeId" type="int" not-null="true"/>
</class>
</hibernate-mapping>
А вот вызываю:
Код:
private static ISessionFactory sessions;
public static void Configure()
{
try
{
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.SetProperty("dialect", "NHibernate.Dialect.MySQLDialect");
cfg.SetProperty("connection.driver_class", "NHibernate.Driver.MySqlDataDriver");
cfg.SetProperty("connection.connection_string", "Server=MARS-PC/SQLEXPRESS;Database=PEOPLEDB;CharSet=utf8");
cfg.SetProperty("proxyfactory.factory_class", "NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu");
cfg.AddAssembly("UserManager.Domain.Default");
ISessionFactory sessionFactory = cfg.
AddClass(typeof(User)).
BuildSessionFactory();
}
catch (Exception ex)
{
throw ex;
}
}
Выдает ошибку компиляции мапинга User.hbm.xml.
Я совсем новичек в этой технологии и ничего понять не могу(