在NHibernate中访问数据

时间:2015-07-07 17:06:34

标签: c# nhibernate

我已经阅读了NHibernate的文档和教程,但我不明白如何实际操作数据库中的数据。我的设置是NHibernate 2.1和Oracle数据库。

当我想操纵或读取数据库中的数据时,我是否使用Get / Load来加载具有我想要的数据的实体,或者我是否必须首先使用Criteria来查询数据库?

1 个答案:

答案 0 :(得分:1)

您是否看过NHibernate Reference的第9章Manipulating Data?它有不同方面的简短指针。对于Get()或查询,如果您知道通常使用Get()Load()的标识符,则使用任何查询API。

以下是使用Load()的示例。在开放会话和交易中,您可以这样做:

DomesticCat cat = (DomesticCat) sess.Load<Cat>( 69L );
cat.Name = "PK";
sess.Flush();  // changes to cat are automatically detected and persisted
               // Flush not required if FlushMode is Commit or Auto (and
               // transactions are used, which you should).

另请注意,NHibernate 2.1非常老旧。考虑使用更新的版本,但至少要注意当前文档中提到的某些内容在旧版本中不可用。