I am using Entity Framework 7 in my project. In some scenarios in my code, EF generates an empty query, like this ""
, and I receive the following error:
(ERROR) OracleRelationalCommand.ExecuteNonQueryAsync() :
System.InvalidOperationException: OracleCommand.CommandText is invalid
at
Oracle.ManagedDataAccess.Client.OracleCommand.DoPreExecuteProcessing(OracleDependencyImpl
orclDependencyImpl, Boolean bXmlQuerySave) at
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery() at
System.Data.Common.DbCommand.ExecuteNonQueryAsync(CancellationToken
cancellationToken)
Is there a way to prevent the execution of a query when it is equal to “” (an empty string)?
I used an interceptor, but it didn’t work.
public class QueriesInterceptor
: DbCommandInterceptor
{
public override DbCommand CommandCreated(CommandEndEventData eventData, DbCommand result)
{
return string.IsNullOrWhiteSpace(result.CommandText) ? result : base.CommandCreated(eventData, result);
}
public override DbCommand CommandInitialized(CommandEndEventData eventData, DbCommand result)
{
return string.IsNullOrWhiteSpace(result.CommandText) ? result : base.CommandInitialized(eventData, result);
}
}