Ask Your Question
3

What is the procedure for setting "SET NOCOUNT ON" in select statements generated by Nhibernate?

asked 2022-10-26 11:00:00 +0000

devzero gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-08-06 11:00:00 +0000

lalupa gravatar image

To set "SET NOCOUNT ON" in select statements generated by NHibernate, you can use the following approach:

  1. Create a custom dialect class by extending the SQLServerDialect class provided by NHibernate.

  2. Override the BuildSqlCommand method to add "SET NOCOUNT ON" to the SqlCommand object before returning it.

Here is an example code snippet:

public class CustomSqlServerDialect : SQLServerDialect
{
    public override SqlCommand BuildSqlCommand(SqlCommandInfo sqlCommandInfo, ISessionFactoryImplementor sessionFactory)
    {
        var cmd = base.BuildSqlCommand(sqlCommandInfo, sessionFactory);
        cmd.CommandText = "SET NOCOUNT ON;" + cmd.CommandText;
        return cmd;
    }
}
  1. Set the dialect property of your NHibernate configuration object to an instance of the custom dialect class.

Here is an example code snippet:

var config = new Configuration();
config.SetProperty(NHibernate.Cfg.Environment.Dialect, typeof(CustomSqlServerDialect).AssemblyQualifiedName);

With this approach, all select statements generated by NHibernate using the SQLServerDialect will automatically include "SET NOCOUNT ON".

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2022-10-26 11:00:00 +0000

Seen: 14 times

Last updated: Aug 06 '21