thank you fabio. it took some trail and error, but i came up with this
public class ArithabortInterceptor : EmptyInterceptor
{
private readonly Configuration Configuration;
public ArithabortInterceptor(Configuration configuration)
{
Configuration = configuration;
}
public override SqlString OnPrepareStatement(SqlString sql)
{
if (!IsAModifyOperation(sql)) return sql;
if (!IsModifingTheOrderHeader(sql)) return sql;
return InjectArithabortStatement(sql);
}
private SqlString InjectArithabortStatement(SqlString sql)
{
return new SqlString("SET ARITHABORT ON ").Append(sql);
}
private bool IsAModifyOperation(SqlString sql)
{
var operations = new[] {"INSERT", "UPDATE", "DELETE"};
return operations.Any(operation => sql.ToString().Contains
(operation));
}
private bool IsModifingTheOrderHeader(SqlString sql)
{
var mapping = Configuration.GetClassMapping(typeof(Order).FullName);
var table =
mapping.Table.Name;
return sql.ToString().Contains(table);
}
}
On Aug 8, 8:54 am, Fabio Maulo <
fabioma...@gmail.com> wrote:
> IInterceptor.OnPrepareStatementor
> YourCustomDrive.GenerateCommand
>
> 2009/8/7 Jason Meckley <
jasonmeck...@gmail.com>