我是一个通用的流利Nhibernate(FNH)或NHibernate(甚至ORMs)的新手。我有一个我用来学习FNH的项目,而且我坚持着,看起来像是一个设计问题。它是一个基本的图书馆管理系统,我有书籍,用户,书籍(!)等对象。例如,我有一个BookSize类和它的经理BookSizesManager,其中包含BookSize对象列表。可以请任何人建议我如何去为他们创建ClassMap,这样我的数据库(用于测试目的,比如SQLite数据库)只有一个名为'BookSizes'的表,并且会列出BookSizeManager中的所有BookSize对象?流利的NHibernate流利的映射对象和对象集合
我的当前实现如下所示,因为它产生两个表1. BookSize 2. BookSizes(来自BookSizeManager Map)。
我的书本类
public class BookSize
{
public virtual string ID { get; set; }
public virtual string Name { get; set; }
public virtual double Length { get; set; }
public virtual double Width { get; set; }
}
通讯类映射
public class BookSizeMap : ClassMap<BookSize>
{
public BookSizeMap()
{
Id(x => x.ID);
Map(x => x.Name);
Map(x => x.Length);
Map(x => x.Width);
}
}
我BookSizesManager类
public class BookSizesManager
{
public virtual string Id { get; set; }
private IList<BookSize> m_bookSizes = new List<BookSize>();
public virtual IList<BookSize> Items
{
get { return new ReadOnlyCollection<BookSize>(m_bookSizes); }
set { if(value != null) m_bookSizes = value; }
}
public virtual void Add(BookSize size)
{
if (size != null)
{
m_bookSizes.Add(size);
}
}// Also contains other unimplemented CRUD methods, but haven't listed them here to reduce 'noise'
}
通讯类映射
public class BookSizesManagerMap : ClassMap<BookSizesManager>
{
public BookSizesManagerMap()
{
Id(x => x.Id);
HasMany(x => x.Items)
.Cascade.All();
Table("BookSizes");
}
}
任何帮助,非常感谢。提前致谢。
任何人都可以请帮助?!?! – Kunal
Stackoverflow死了吗? – Kunal
除了CRUD,“BookSizesManager”是做什么的?我的意思是当使用NHibernate时,你已经有'ISession'来完成CRUD – Firo