вторник, 20 июля 2010 г.

Отношение многие ко многим.

Рассмотрим два класса: Author и Book. Автор может хранить несколько книг. Книга тоже может иметь несколько авторов.

Сущности:

public class Author {
     public virtual int AuthorId { get; protected set; }
     public virtual IEnumerable Books { get; protected set; }
}

public class Book {
     public virtual int BookId { get; protected set; }
     public virtual IEnumerable Authors { get; protected set; }
}

Маппинг:

public sealed class AuthorMap : ClassMap<Author> {
     public AuthorMap() {
          Id(x => x.AuthorId);
          HasManyToMany(x => x.Books)
               .ChildKeyColumn("BookId")
               .ParentKeyColumn("AuthorId")
               .Table("Book_To_Author");
     }
}

public sealed class BookMap : ClassMap<Book> {
     public BookMap() {
          Id(x => x.BookId);
          HasManyToMany(x => x.Authors)
               .ChildKeyColumn("AuthorId")
               .ParentKeyColumn("BookId")
               .Table("Book_To_Author");
     }
}


Исходный код:
HasManyToManySample.zip


Fluent NHibernate для SQLite

Комментариев нет:

Отправить комментарий