powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не получается сохранить объект со списком связанных объектов
3 сообщений из 3, страница 1 из 1
Не получается сохранить объект со списком связанных объектов
    #37298016
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю так:
Код: 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.
public class Book
{


        public virtual long ID { get;  set;  }

        public virtual string ISBN { get; set; }

        public virtual string Title { get; set; }

        public virtual Theme Theme { get; set; }

		public Book()
		{

		}

        public Book(string isbn, string title, long id_theme)
		{
            this.Theme = new Theme(id_theme);
            ISBN = isbn;
            Title = title;
            
		}

        public virtual void AddAutor(string name)
        {
            Autor a = new Autor(name);
            if (Autors == null)
                Autors = new HashSet<Autor>();
            Autors.Add(a);
        }

        public virtual ICollection<Autor> Autors
        {
            get;
            set;
        }
}
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="NHibernate_1" assembly="NHibernate_1">
  <class name="Book" table="Books">
    <id name="ID" unsaved-value="0">
      <column name="ID" not-null="true" />
        <generator class="identity"/>
    </id>
    
    <property name="ISBN" />
    <property name="Title" />


    <many-to-one  class="Theme" name="Theme" column="Id_Theme" />

    <set cascade="save-update" lazy="true" name="Autors" table="Autor">
      <key column="id_book" />
      <one-to-many class="Autor" />
    </set>
  </class>
</hibernate-mapping>

Код: plaintext
1.
2.
3.
4.
Book book = new Book("ISBN", "Новое название книги", 1);
                book.AddAutor("Автор1");
                book.AddAutor("Автор2");
                book.AddAutor("Автор3");
                session.Save(book);

Ругается на ограниечение вторичного ключа Id_book в таблице Autor - судя по всему, туда пытается записать 0. Что не так делаю? Спасибо
...
Рейтинг: 0 / 0
Не получается сохранить объект со списком связанных объектов
    #37298045
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,

Маппинг для автора покажите.
...
Рейтинг: 0 / 0
Не получается сохранить объект со списком связанных объектов
    #37298057
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,

разобрался - оказывается в мапинге для авторов надо было указать ссылку на книгу

Код: plaintext
<many-to-one name="Book" column="id_book"  class="Book"  />

(ну и, соответственно, в поле класса автора писать ссылку на книгу)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public virtual void AddAutor(string name)
        {
            Autor a = new Autor(name);
            if (Autors == null)
                Autors = new HashSet<Autor>();
            a.Book = this;
            Autors.Add(a);
        }
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не получается сохранить объект со списком связанных объектов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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