C# 使用Fluent NHibernate执行Sql语句

C# 使用Fluent NHibernate执行Sql语句,c#,.net,vb.net,nhibernate,C#,.net,Vb.net,Nhibernate,基本上,我希望能够做到这一点: session.ExecuteSql(“…”) 我不需要它映射到任何实体或返回任何值。有什么建议吗?如前所述,这不是一个流利的NHibernate问题,但这里有一个例子: public int GetSqlCount<T>(Session session, string table) { var sql = String.Format("SELECT Count(*) FROM {0}", table); var query = ses

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

session.ExecuteSql(“…”)


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

如前所述,这不是一个流利的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);
}
public int GetSqlCount(会话,字符串表)
{
var sql=String.Format(“从{0}中选择计数(*),表);
var query=session.CreateSQLQuery(sql);
var result=query.UniqueResult();
//如果仅更新值,也可以使用此选项:
//query.ExecuteUpdate();
返回Convert.ToInt32(结果);
}

根据您的需要,您需要研究ISQLQuery接口

这不是一个与Fluent NHibernate相关的问题。有没有办法在Fluent NHibernate中使用命名查询而不是内联查询?没有具体的FNH方法,但它应该可以与NHiberbate配置配合使用。与不使用FNH一样,将命名查询放在.hbm.xml文件中。然后配置FNH以加载映射文件和FNH映射,您应该能够使用GetNamedQuery()方法调用查询。