我已经阅读了NHibernate的文档和教程,但我不明白如何实际操作数据库中的数据。我的设置是NHibernate 2.1和Oracle数据库。
当我想操纵或读取数据库中的数据时,我是否使用Get / Load来加载具有我想要的数据的实体,或者我是否必须首先使用Criteria来查询数据库?
答案 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非常老旧。考虑使用更新的版本,但至少要注意当前文档中提到的某些内容在旧版本中不可用。