Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2012, 01:06   #1
Нике
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 16
По умолчанию Nhibirnate мапинг

Доброе время вам)
У меня возникла проблема с данной технологией.
Есть классы и нужно реализовать работу с БД через 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.
Я совсем новичек в этой технологии и ничего понять не могу(

Последний раз редактировалось Нике; 31.03.2012 в 01:12.
Нике вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск