【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"
)));
}
}
推荐阅读
- react webapp 开发小结
- Xamarin.Android SharedPreferences的使用方法
- 安卓低功耗蓝牙——手机作为外围设备
- 使用@SpringBootApplication注解
- Android Studiobuild gradle project info 卡主不动解决方法.
- springboot自定义SpringApplication启动类
- springboot配置mybatis的mapper路径
- Android 逆向概述
- Android 中的反调试技术