Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate помогите разобратся с ошибкой / 25 сообщений из 27, страница 1 из 2
11.05.2009, 23:24
    #35979398
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
не могу понять в чем проблема без связей в маппинге все работает а как создал one-to-many перестало ругается на openSession вот примера маппинга двух таблиц
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Domain">
	<class name="Domain.users, Domain"  table="users">

		<id name="UserN" column="iduser" type="string">
			<generator class="identity"/>
		</id>

		<property name="NameUser" column="name" type="String"/>
		<property name="Password" column="pass" type="String"/>
		<bag name="certificate" inverse="false" cascade="save-update" 
		table="certificate" order-by="NameUser">
			<key column="iduser"></key>
			<one-to-many class="Domain.certificate"></one-to-many>
		</bag>
	
	</class>
</hibernate-mapping>


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Domain">
	<class name="Domain.certificate, Domain"  table="certificate">

		<id name="IDcertts" column="idcerts" type="int">
			<generator class="identity"/>
		</id>
		<property name="UserN" column="iduser" type="String"/>
		<property name="Certz" column="certz" type="String"/>
		<property name="Certo" column="certo" type="String"/>
		<property name="Certk" column="certk" type="String"/>
		<many-to-one name="users" column="iduser" class="Domain.users"/>
	</class>
</hibernate-mapping>

подскажите где хотя бы искать ошибку ?????
...
Рейтинг: 0 / 0
12.05.2009, 10:06
    #35979736
Sergej
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
sergio_c116...подскажите где хотя бы искать ошибку ?????...

подскажите хотя бы что за ошибка...
...
Рейтинг: 0 / 0
12.05.2009, 10:09
    #35979744
Sergej
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
может тута чтонить не то:
Код: plaintext
...order-by="NameUser"...
Код: plaintext
1.
<property name="UserN" column="iduser" type="String"/>
...
Рейтинг: 0 / 0
12.05.2009, 11:47
    #35980018
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
Текст ошибки приведите

Модератор: Тема перенесена из форума "C#.NET".
...
Рейтинг: 0 / 0
12.05.2009, 13:05
    #35980308
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
Код: plaintext
1.
2.
3.
4.
5.
6.
  private void Form1_Load(object sender, EventArgs e)
        {
            ISession session = NhibernateSessionFactory.openSession();   // тута ругается :(
            IQuery q = session.CreateQuery("from  certificate,certificate");
            dataGridView1.DataSource = c.List();
           
        }
...
Рейтинг: 0 / 0
12.05.2009, 13:09
    #35980324
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
Код: plaintext
1.
2.
3.
4.
5.
6.
  private void Form1_Load(object sender, EventArgs e)
        {
            ISession session = NhibernateSessionFactory.openSession();   // тута ругается :(
            IQuery q = session.CreateQuery("from  users, certificate"); //переправил ....
            dataGridView1.DataSource = c.List();
           
        }
...
Рейтинг: 0 / 0
12.05.2009, 13:14
    #35980341
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
вот и классы может тут что не так ....
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
namespace Domain
{
    public class certificate
   
    {
        private int _idcerts;
        private string _certz;
        private string _certo;
        private string _certk;
      

       public virtual int IDcertts
        {
            get { return _idcerts; }
            set { _idcerts = value; }
        }
        public virtual string Certz
        {
            get { return _certz; }
            set { _certz = value; }
        }

        public virtual string Certo
        {
            get { return _certo; }
            set { _certo = value; }
        }

        public virtual string Certk
        {
            get { return _certk; }
            set { _certk = value; }
        }


    }
}

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
namespace Domain
{
    public class users
    {
        private String _id;
        private String _name;
        private String _pass;

        public users()
        {
            _id = String.Empty;
            _name = String.Empty;
            _pass = String.Empty;
        }
        public users(String user, String login, String password)  
        {
            _id = user;
            _name = login;
            _pass = password;
        }

       public virtual string UserN
        {
            get { return _id; }
            set { _id = value; }
        }
        public virtual string NameUser
        {
            get { return _name; }
            set { _name = value; }
        }

        public virtual string Password
        {
            get { return _pass; }
            set { _pass = value; }
        }


    }
}
...
Рейтинг: 0 / 0
12.05.2009, 13:30
    #35980388
Sergej
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
sergio_c116тута ругается :(это текст ошибки?

так а где у вас вот это:
Код: plaintext
1.
2.
3.
4.
<bag name="certificate" inverse="false" cascade="save-update" 
		table="certificate" order-by="NameUser">
			<key column="iduser"></key>
			<one-to-many class="Domain.certificate"></one-to-many>
		</bag>
в классе описано?
...
Рейтинг: 0 / 0
12.05.2009, 13:42
    #35980429
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
в классе users.cs не знаю если правильно делал ...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private IList _certificate;
public IList Certificate
        {
            get 
            {
                if (_certificate == null)
                {
                    _certificate = new ArrayList();
                }
                return _certificate;
            }
            set { _certificate = value; }
...
Рейтинг: 0 / 0
12.05.2009, 13:45
    #35980442
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
я только осваиваю Nhibernate проще будет начать заново подскажите как правильней будет создать классы и связи one-to-many на данном примере ... буду очень благодарен за помощь
...
Рейтинг: 0 / 0
12.05.2009, 15:46
    #35980884
SergASh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
sergio_c116я только осваиваю Nhibernate проще будет начать заново подскажите как правильней будет создать классы и связи one-to-many на данном примере ... буду очень благодарен за помощь
Чтобы эта помощь последовала, старайтесь слушать то, что вам говорят. Дважды попросили привести текст ошибки. Это что, так сложно? Вот поставьте себя на место отвечающго. Ему вопрос не до конца понятен и он просит подробностей. Просит раз, просит два. А от вас никакой внятной реакции. Думаете, отвечающему это не надоест? Мне бы на второй раз надоело.

Теперь по делу. Если в маппине ошибка, то при конфигурировании и создании сеанса будет исключение. Особенность в том, что оно обычно не одно, а содержит вложенное (InnerException). Зачастую даже несколько вложенных. Наиболее вложенное исключение как правило содержит самую полезную информацию. Поэтому вам нужно сделать что-то вроде такого
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
var builder = new StringBuilder();
try
{
  ISession session = NhibernateSessionFactory.openSession(); 
}
catch ( Exception ex )
{
  while ( null != ex )
  {
    builder.AppendFormat( "- {0}\r\n", ex.Message );    
    ex = ex.InnerException;
  }
}
if ( 0 != builder.Length )
{
  MessageBox.Show( builder.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
...
Рейтинг: 0 / 0
12.05.2009, 17:30
    #35981246
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
такой ответ тебя устроит .....
...
Рейтинг: 0 / 0
12.05.2009, 17:39
    #35981279
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
Вам ведь даже код написал тов SergASh ... не устроит...
...
Рейтинг: 0 / 0
13.05.2009, 00:21
    #35981905
KirillMedvedev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
Configuration.Configure() вызываете? И потом:

В маппинге есть

Код: plaintext
1.
<class name="Domain.certificate, Domain"  table="certificate">
    <many-to-one name="users"

А в классе Domain.certificate не определено поле
Код: plaintext
1.
public virtual Domain.users users {get; set;}
В Вашем коде было так:
Код: plaintext
1.
2.
3.
4.
5.
6.
public class certificate
{
      public virtual int IDcertts
      public virtual string Certz
      public virtual string Certo
      public virtual string Certk
}

А в классе users коллекцию нужно сделать virtual:
Код: plaintext
1.
public virtual IList Certificate
...
Рейтинг: 0 / 0
13.05.2009, 00:40
    #35981920
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
ну вот наконец то подсказали :) спс попробую ....
...
Рейтинг: 0 / 0
13.05.2009, 00:49
    #35981926
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
.......мозги кипят. добавил но все равно что не то :(
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
users.sc
 private IList<certificate> _certificate = new List<certificate>();
 public virtual IList<certificate> Certificate
        {
            get { return _certificate; }
            set { _certificate = value; }
        }

certificate.cs

private users _users;

        public virtual users Users
        {
            get { return _users; }
            set { _users = value; }
        }
...
Рейтинг: 0 / 0
13.05.2009, 07:51
    #35982019
KirillMedvedev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
А Вы быб скопировали быб ошибку (интересует InnerException), глядишь, люди б и помогли...
...
Рейтинг: 0 / 0
13.05.2009, 09:26
    #35982148
Sergej
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
"Certificate" != "certificate"

Class Property Name != Mapping Property Name
...
Рейтинг: 0 / 0
13.05.2009, 09:45
    #35982204
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
вот вам и ошибка
...
Рейтинг: 0 / 0
13.05.2009, 09:58
    #35982254
SergASh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
Ну наконец-то. А написали бы ошибку сразу, был бы вам ещё вчера ответ.

Попробуйте вместо
<one-to-many class="Domain.certificate"></one-to-many>
написать
<one-to-many class="Domain.certificate, Domain"></one-to-many>

Кстати, а нет ли там ещё более вложенного исключения?
...
Рейтинг: 0 / 0
13.05.2009, 10:18
    #35982312
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
SergASh,

пробовал и так и так в голове каша самое просто и не получается ладно попробую еще раз может раньше в другом месте ошибка была
спс :)
...
Рейтинг: 0 / 0
13.05.2009, 10:24
    #35982326
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
наверняка еще что то не то ошибки те же.... надо отдохнуть и подумать :)
...
Рейтинг: 0 / 0
13.05.2009, 10:54
    #35982400
SergASh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
Напишите сюда полный текст маппинга и классов. Сказать по правде, у вас довольно-таки тривиальная ситуация - два класса, две таблицы и связь один ко многим. Там негде ошибиться, так что скорее всего где-то опечатка. Давайте полный листинг, короче говоря. Посмотрим.

И ещё, как сборка называется? Domain.dll ?
...
Рейтинг: 0 / 0
13.05.2009, 11:20
    #35982465
sergio_c116
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
SergASh,

хорошо .... щас сделаю
Состав Domain.dll

certificate.cs

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
using System;
using System.Collections.Generic;
using System.Text;

namespace Domain
{
    public class certificate
   
    {
        private int _idcerts;
        private string _certz;
        private string _certo;
        private string _certk;
        private users _users;

        public certificate()
        { 
        
        }
       

        public virtual users Users
        {
            get { return _users; }
            set { _users = value; }
        }

       public virtual int IDcertts
        {
            get { return _idcerts; }
            set { _idcerts = value; }
        }
        public virtual string Certz
        {
            get { return _certz; }
            set { _certz = value; }
        }

        public virtual string Certo
        {
            get { return _certo; }
            set { _certo = value; }
        }

        public virtual string Certk
        {
            get { return _certk; }
            set { _certk = value; }
        }


    }
}

certificate.hbm.xml

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Domain">
	<class name="Domain.certificate, Domain"  table="certificate">

		<id name="IDcertts" column="idcerts" type="int">
			<generator class="native"/>
		</id>

		<property name="Certz" column="certz" type="String"/>
		<property name="Certo" column="certo" type="String"/>
		<property name="Certk" column="certk" type="String"/>

		<many-to-one name="users" class="Domain.users, Domain" column="iduser" cascade="all" />
		
	</class>
</hibernate-mapping>

users.cs

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;

namespace Domain
{
    public class users
    {
        private String _id;
        private String _name;
        private String _pass;

        private IList<certificate> _certificate = new List<certificate>();
        public virtual IList<certificate> Certificate
        {
            get { return _certificate; }
            set { _certificate = value;}
        }

        public users()
        {
            _id = String.Empty;
            _name = String.Empty;
            _pass = String.Empty;
        }
        public users(String user, String login, String password)  
        {
            _id = user;
            _name = login;
            _pass = password;
        }

       public virtual string UserN
        {
            get { return _id; }
            set { _id = value; }
        }
        public virtual string NameUser
        {
            get { return _name; }
            set { _name = value; }
        }

        public virtual string Password
        {
            get { return _pass; }
            set { _pass = value; }
        }


    }
}

users.hbm.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Domain">
	<class name="Domain.users, Domain"  table="users">

		<id name="UserN" column="iduser" type="string">
			<generator class="native"/>
		</id>

		<property name="NameUser" column="name" type="String"/>
		<property name="Password" column="pass" type="String"/>
		<bag name="certificate" cascade="all-delete-orphan" lazy="false">
			<key column="iduser" />
			<one-to-many class="Domain.certificate, Domain" />
		</bag>
	
	
	</class>
</hibernate-mapping>
...
Рейтинг: 0 / 0
13.05.2009, 11:43
    #35982552
SergASh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate помогите разобратся с ошибкой
Так и есть, опечатка. Точнее две.
1. <many-to-one name="Users" ...
Users c большой буквы, поскольку это имя свойства, а оно у вас с большой буквы начинается.
2. <bag name="Certificate" ...
Certificate c большой буквы по той ж е причине.

После этих двух исправлений у меня сеанс сконфигурировался без всяких исключений.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate помогите разобратся с ошибкой / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]