【问题标题】:Executing Sql statements with Fluent NHibernate使用 Fluent NHibernate 执行 Sql 语句
【发布时间】:2009-05-12 13:16:23
【问题描述】:

基本上我希望能够做到这一点:

session.ExecuteSql("...");

我不需要它来映射到任何实体或返回任何值。有什么建议吗?

【问题讨论】:

  • 不是特定的 Fluent NHibernate 相关问题。

标签: c# .net vb.net nhibernate


【解决方案1】:

如前所述,这不是 Fluent NHibernate 问题,但这里有一个示例:

public int GetSqlCount<T>(Session session, string table)
{
    var sql = String.Format("SELECT Count(*) FROM {0}", table);
    var query = session.CreateSQLQuery(sql);
    var result = query.UniqueResult();
    // Could also use this if only updating values:
    //query.ExecuteUpdate();

    return Convert.ToInt32(result);
}

您将需要研究 ISQLQuery 接口,具体取决于您的需要。

【讨论】:

  • 有没有办法在流畅的 nhibernate 中使用命名查询而不是内联?
  • 没有特定于 FNH 的方法,但它应该可以在 NHiberbate 配置中正常工作。与没有 FNH 一样,将命名查询放在 .hbm.xml 文件中。然后配置 FNH 以加载映射文件以及您的 FNH 映射,您应该能够使用 GetNamedQuery() 方法调用查询。
猜你喜欢
  • 1970-01-01
  • 2011-01-02
  • 1970-01-01
  • 2011-10-03
  • 2012-11-18
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多