具有复杂数据库表的nhibernate实体

具有复杂数据库表的nhibernate实体,nhibernate,Nhibernate,您好,我遇到了一个问题,如上图所示。与oracle一起使用的数据库设计如下图所示。我想为将在此数据库图上生成的实体开发CRUD进程。我必须使用nhiberante和hql查询。在该图中,关系是SUCCESS优于关系表(单元属性关系是SUCCESS优于unitporperty表,例如) 那么,如何在这个图的复杂性上完成nhibarene实体和CRUD操作呢?这个图没有什么过于复杂的地方,所以我假设您是NHibernate的新手。在这种情况下,我建议阅读和任何教程 基本过程是创建表示数据库表的.NE

您好,我遇到了一个问题,如上图所示。与oracle一起使用的数据库设计如下图所示。我想为将在此数据库图上生成的实体开发CRUD进程。我必须使用nhiberante和hql查询。在该图中,关系是SUCCESS优于关系表(单元属性关系是SUCCESS优于unitporperty表,例如)
那么,如何在这个图的复杂性上完成nhibarene实体和CRUD操作呢?

这个图没有什么过于复杂的地方,所以我假设您是NHibernate的新手。在这种情况下,我建议阅读和任何教程

基本过程是创建表示数据库表的.NET类,并创建映射文件,以便NHibernate了解它们。NHibernate将负责在类和数据库之间创建连接,以便您可以运行HQL查询来检索对象。在代码中修改/创建对象,然后使用
ISession.Save()
将更改保存到数据库中。要记住的是(通常)你不是在做CRUD操作,NHibernate是

  • 创建:新建MyObject();后跟session.Save()
  • 更新:MyObject.change();后跟session.Save()
  • 删除:session.DELETE(MyObject)
图表链接是的,这是教程列表,但可能在该列表中位于较高位置,而不是底部。这是一个很好的资源;然后是session.Update()或session.SaveOrUpdate(),实际上,这并不重要。在内部,NHibernate将所有Save()、Update()和SaveOrUpdate()调用转换为在IsaveUpdateEventListener上触发OnSaveOrUpdate事件。这些函数只告诉NHibernate保存对象,其余的由它处理。瞧,这是个人喜好。:)