NHibernate 基于 ClassMapping 的ManyToMany(多对多配置)

【NHibernate 基于 ClassMapping 的ManyToMany(多对多配置)】采得百花成蜜后,为谁辛苦为谁甜。这篇文章主要讲述NHibernate 基于 ClassMapping 的ManyToMany(多对多配置)相关的知识,希望能为你提供帮助。
NHibernate 基于 ClassMapping 的 ManyToMany(多对多配置) 实体类

public class Library { public virtual int Id { get; set; } public virtual string Name { get; set; }public virtual IList< Book> Books { get; set; }public Library() { Books = new List< Book> (); } }public class Book { public virtual int Id { get; set; } public virtual string Name { get; set; }public virtual IList< Library> Libraries { get; set; } public virtual IList< BookLevel> BookLevel { get; set; }public Book() { Libraries = new List< Library> (); BookLevel = new List< BookLevel> (); } }public class BookLevel { public virtual int Id { get; set; } public virtual string Name { get; set; }public virtual IList< Book> Book { get; set; }public BookLevel() { Book = new List< Book> (); } }

ClassMapping 映射类
public class LibraryMap : ClassMapping< Library> { public LibraryMap() { Lazy(false); Table(" Library" ); Id(l => l.Id,map => { map.Column(" id" ); map.Generator(Generators.Identity); }); Property(x => x.Name, map => map.Column(" LibraryName" )); this.Bag(x => x.Books, map => { map.Table(" Book_Library" ); map.Cascade(Cascade.All); map.Inverse(false); map.Lazy(CollectionLazy.Lazy); map.Key(key => key.Column(" LibraryId" )); }, m => m.ManyToMany(x => x.Column(" BookId" ))); } }public class BookMap : ClassMapping< Book> { public BookMap() { Lazy(false); Table(" Book" ); Id(l => l.Id, map => { map.Column(" id" ); map.Generator(Generators.Identity); }); Property(x => x.Name, map => map.Column(" BookName" )); this.Bag(x => x.Libraries, map => { map.Table(" Book_Library" ); map.Cascade(Cascade.All); map.Inverse(false); map.Lazy(CollectionLazy.Lazy); map.Key(key => key.Column(" BookId" )); }, m => m.ManyToMany(x=> x.Column(" LibraryId" ))); this.Bag(x => x.BookLevel, map => { map.Table(" Book_Level" ); map.Cascade(Cascade.All); map.Inverse(false); map.Lazy(CollectionLazy.Lazy); map.Key(key => key.Column(" BookId" )); }, m => m.ManyToMany(x => x.Column(" LevelId" ))); } }public class BookLevelMap : ClassMapping< BookLevel> { public BookLevelMap() { Lazy(false); Table(" BookLevel" ); Id(l => l.Id, map => { map.Column(" id" ); map.Generator(Generators.Identity); }); Property(x => x.Name, map => map.Column(" LevelName" )); this.Bag(x => x.Book, map => { map.Table(" Book_Level" ); map.Cascade(Cascade.All); map.Inverse(false); map.Lazy(CollectionLazy.Lazy); map.Key(key => key.Column(" LevelId" )); }, m => m.ManyToMany(x => x.Column(" BookId" ))); } }


    推荐阅读