I have a class:
public class WorkOrderStatusTracking {
private WorkOrderStatusTracking_ID _id = new WorkOrderStatusTracking_ID();
public virtual WorkOrderStatusTracking_ID ID {
get { return _id; }
set { _id = value; }
}
public virtual String WORK_ORDER_NBR { get; set; }
public virtual String WORK_ORDER_TASK { get; set; }
public virtual Int32 GEN_ARG { get; set; }
public virtual String HOLD_CODE { get; set; }
public virtual String HOLD_RELEASE_DATE { get; set; }
}
a composite id:
public class WorkOrderStatusTracking_ID {
public virtual String WORK_ORDER_NBR { get; set; }
public virtual String WORK_ORDER_TASK { get; set; }
public virtual Int32 GEN_ARG { get; set; }
public override bool Equals(object obj) {
if (obj == null) {
return false;
}
var t = obj as WorkOrderStatusTracking_ID;
if (t == null) {
return false;
}
if (
(WORK_ORDER_NBR == t.WORK_ORDER_NBR) &&
(WORK_ORDER_TASK == t.WORK_ORDER_TASK) &&
(GEN_ARG == t.GEN_ARG)
) {
return true;
}
return false;
}
public override int GetHashCode() {
return String.Format("{0}|{1}|{2}",
WORK_ORDER_NBR,
WORK_ORDER_TASK,
GEN_ARG
).GetHashCode();
}
}
and a class map:
public class WorkOrderStatusTracking_ORM : ClassMap<WorkOrderStatusTracking> {
public WorkOrderStatusTracking_ORM() {
Table("TIDWOSTR");
CompositeId(x => x.ID)
.KeyProperty(x => x.WORK_ORDER_NBR, x => x.Length(8))
.KeyProperty(x => x.WORK_ORDER_TASK, x => x.Length(2))
.KeyProperty(x => x.GEN_ARG);
Map(x => x.WORK_ORDER_NBR).Length(8);
Map(x => x.WORK_ORDER_TASK).Length(2);
Map(x => x.GEN_ARG);
Map(x => x.HOLD_CODE).Length(3);
Map(x => x.HOLD_RELEASE_DATE).Length(8);
}
}
however, when I run:
List<WorkOrderStatusTracking> WorkOrderStatusTrackings = session.QueryOver<WorkOrderStatusTracking>()
.Where(x => x.WORK_ORDER_NBR == "00322384")
.List<WorkOrderStatusTracking>().ToList();
foreach (WorkOrderStatusTracking w in WorkOrderStatusTrackings) {
Console.WriteLine(...);
}
I get zero results...
Now I know for a fact entries exist for this where clause and if I .ShowSql() and copy the query to SQL Developer (this is an Oracle Database) it definitely returns rows, furthermore if I remove my .Where() and put in a .Take(10), I get records coming back. Anyone have any ideas? Why would the .Where not work, despite the generated query working in SQL Developer?
log4net results:
NHibernate.Cfg.Environment: 2014-06-02 12:11:55,285 [9] INFO NHibernate.Cfg.Environment - NHibernate 3.3.1.4000 (3.3.1.4000)
NHibernate.Cfg.Environment: 2014-06-02 12:11:55,302 [9] INFO NHibernate.Cfg.Environment - hibernate-configuration section not found in application configuration file
NHibernate.Cfg.Environment: 2014-06-02 12:11:55,304 [9] INFO NHibernate.Cfg.Environment - Bytecode provider name : lcg
NHibernate.Cfg.Environment: 2014-06-02 12:11:55,307 [9] INFO NHibernate.Cfg.Environment - Using reflection optimizer
NHibernate.Cfg.Configuration: 2014-06-02 12:11:55,554 [9] DEBUG NHibernate.Cfg.Configuration - Mapping XML:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"><class xmlns="urn:nhibernate-mapping-2.2" name="Client.WorkOrderStatusTracking, Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="TIDWOSTR"><composite-id name="ID"><key-property name="WORK_ORDER_NBR" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><column name="WORK_ORDER_NBR" /></key-property><key-property name="WORK_ORDER_TASK" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><column name="WORK_ORDER_TASK" /></key-property><key-property name="GEN_ARG" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><column name="GEN_ARG" /></key-property></composite-id><property name="WORK_ORDER_NBR" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><column name="WORK_ORDER_NBR" /></property><property name="WORK_ORDER_TASK" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><column name="WORK_ORDER_TASK" /></property><property name="GEN_ARG" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><column name="GEN_ARG" /></property><property name="HOLD_CODE" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><column name="HOLD_CODE" /></property><property name="HOLD_RELEASE_DATE" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><column name="HOLD_RELEASE_DATE" /></property></class></hibernate-mapping>
NHibernate.Dialect.Dialect: 2014-06-02 12:11:55,677 [9] INFO NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.Oracle10gDialect
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,796 [9] INFO NHibernate.Cfg.XmlHbmBinding.Binder - Mapping class: Client.WorkOrderStatusTracking -> TIDWOSTR
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,862 [9] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: WORK_ORDER_NBR -> WORK_ORDER_NBR, type: String
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,864 [9] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: WORK_ORDER_TASK -> WORK_ORDER_TASK, type: String
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,864 [9] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: GEN_ARG -> GEN_ARG, type: Int32
NHibernate.Tuple.Component.AbstractComponentTuplizer: 2014-06-02 12:11:55,886 [9] DEBUG NHibernate.Tuple.Component.AbstractComponentTuplizer - No custom accessors found for component: Client.WorkOrderStatusTracking_ID, Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
NHibernate.Tuple.Component.AbstractComponentTuplizer: 2014-06-02 12:11:55,892 [9] DEBUG NHibernate.Tuple.Component.AbstractComponentTuplizer - No custom accessors found for component: Client.WorkOrderStatusTracking_ID, Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,917 [9] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: ID -> WORK_ORDER_NBR,WORK_ORDER_TASK,GEN_ARG, type: component[WORK_ORDER_NBR,WORK_ORDER_TASK,GEN_ARG]
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,939 [9] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: WORK_ORDER_NBR -> WORK_ORDER_NBR, type: String
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,940 [9] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: WORK_ORDER_TASK -> WORK_ORDER_TASK, type: String
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,942 [9] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: GEN_ARG -> GEN_ARG, type: Int32
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,943 [9] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: HOLD_CODE -> HOLD_CODE, type: String
NHibernate.Cfg.XmlHbmBinding.Binder: 2014-06-02 12:11:55,944 [9] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: HOLD_RELEASE_DATE -> HOLD_RELEASE_DATE, type: String
NHibernate.Cfg.Configuration: 2014-06-02 12:11:55,954 [9] INFO NHibernate.Cfg.Configuration - checking mappings queue
NHibernate.Cfg.Configuration: 2014-06-02 12:11:55,955 [9] INFO NHibernate.Cfg.Configuration - processing one-to-many association mappings
NHibernate.Cfg.Configuration: 2014-06-02 12:11:55,956 [9] INFO NHibernate.Cfg.Configuration - processing one-to-one association property references
NHibernate.Cfg.Configuration: 2014-06-02 12:11:55,957 [9] INFO NHibernate.Cfg.Configuration - processing foreign key constraints
NHibernate.Cfg.Configuration: 2014-06-02 12:11:55,959 [9] INFO NHibernate.Cfg.Configuration - processing filters (second pass)
NHibernate.Dialect.Dialect: 2014-06-02 12:11:55,978 [9] INFO NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.Oracle10gDialect
NHibernate.Dialect.Dialect: 2014-06-02 12:11:55,984 [9] INFO NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.Oracle10gDialect
NHibernate.Exceptions.SQLExceptionConverterFactory: 2014-06-02 12:11:56,035 [9] INFO NHibernate.Exceptions.SQLExceptionConverterFactory - Using dialect defined converter
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,036 [9] INFO NHibernate.Cfg.SettingsFactory - Generate SQL with comments: disabled
NHibernate.Connection.ConnectionProviderFactory: 2014-06-02 12:11:56,038 [9] INFO NHibernate.Connection.ConnectionProviderFactory - Initializing connection provider: NHibernate.Connection.DriverConnectionProvider
NHibernate.Connection.ConnectionProvider: 2014-06-02 12:11:56,039 [9] INFO NHibernate.Connection.ConnectionProvider - Configuring ConnectionProvider
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,043 [9] INFO NHibernate.Cfg.SettingsFactory - Transaction factory: NHibernate.Transaction.AdoNetWithDistributedTransactionFactory
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,044 [9] INFO NHibernate.Cfg.SettingsFactory - Optimize cache for minimal puts: False
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,045 [9] INFO NHibernate.Cfg.SettingsFactory - Connection release mode: auto
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,046 [9] INFO NHibernate.Cfg.SettingsFactory - Default batch fetch size: 1
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,047 [9] INFO NHibernate.Cfg.SettingsFactory - echoing all SQL to stdout
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,047 [9] INFO NHibernate.Cfg.SettingsFactory - Statistics: disabled
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,048 [9] INFO NHibernate.Cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,050 [9] INFO NHibernate.Cfg.SettingsFactory - Query translator: NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,052 [9] INFO NHibernate.Cfg.SettingsFactory - Query language substitutions: {}
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,054 [9] INFO NHibernate.Cfg.SettingsFactory - cache provider: NHibernate.Cache.NoCacheProvider, NHibernate, Version=3.3.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,055 [9] INFO NHibernate.Cfg.SettingsFactory - Order SQL inserts for batching: disabled
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,056 [9] DEBUG NHibernate.Cfg.SettingsFactory - Wrap result sets: disabled
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,058 [9] INFO NHibernate.Cfg.SettingsFactory - Batcher factory: NHibernate.AdoNet.NonBatchingBatcherFactory, NHibernate, Version=3.3.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,059 [9] INFO NHibernate.Cfg.SettingsFactory - Default entity-mode: Poco
NHibernate.Cfg.SettingsFactory: 2014-06-02 12:11:56,060 [9] INFO NHibernate.Cfg.SettingsFactory - Named query checking : enabled
NHibernate.Impl.SessionFactoryImpl: 2014-06-02 12:11:56,081 [9] INFO NHibernate.Impl.SessionFactoryImpl - building session factory
NHibernate.Impl.SessionFactoryImpl: 2014-06-02 12:11:56,083 [9] DEBUG NHibernate.Impl.SessionFactoryImpl - Session factory constructed with filter configurations : {}
NHibernate.Impl.SessionFactoryImpl: 2014-06-02 12:11:56,084 [9] DEBUG NHibernate.Impl.SessionFactoryImpl - instantiating session factory with properties: {'use_reflection_optimizer'='True', 'connection.provider'='NHibernate.Connection.DriverConnectionProvider', 'connection.driver_class'='NHibernate.Driver.OracleClientDriver, NHibernate, Version=3.3.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4', 'dialect'='NHibernate.Dialect.Oracle10gDialect, NHibernate, Version=3.3.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4', 'hibernate.dialect'='NHibernate.Dialect.Oracle10gDialect, NHibernate, Version=3.3.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4', 'show_sql'='true', 'connection.connection_string'='REMOVED'}
NHibernate.Connection.DriverConnectionProvider: 2014-06-02 12:11:56,087 [9] DEBUG NHibernate.Connection.DriverConnectionProvider - Obtaining IDbConnection from Driver
NHibernate.Connection.ConnectionProvider: 2014-06-02 12:11:56,537 [9] DEBUG NHibernate.Connection.ConnectionProvider - Closing connection
NHibernate.Tuple.Entity.AbstractEntityTuplizer: 2014-06-02 12:11:56,640 [9] DEBUG NHibernate.Tuple.Entity.AbstractEntityTuplizer - No custom accessors found for entity: Client.WorkOrderStatusTracking
NHibernate.Tuple.Entity.AbstractEntityTuplizer: 2014-06-02 12:11:56,644 [9] DEBUG NHibernate.Tuple.Entity.AbstractEntityTuplizer - No custom accessors found for entity: Client.WorkOrderStatusTracking
NHibernate.Tuple.Entity.PocoEntityTuplizer: 2014-06-02 12:11:56,658 [9] DEBUG NHibernate.Tuple.Entity.PocoEntityTuplizer - Create Instantiator using optimizer for:Client.WorkOrderStatusTracking
NHibernate.SqlCommand.SqlSelectBuilder: 2014-06-02 12:11:56,729 [9] DEBUG NHibernate.SqlCommand.SqlSelectBuilder - The initial capacity was set too low at: 8 for the SelectSqlBuilder that needed a capacity of: 11 for the table TIDWOSTR workorders_
NHibernate.Persister.Entity.AbstractEntityPersister: 2014-06-02 12:11:56,734 [9] DEBUG NHibernate.Persister.Entity.AbstractEntityPersister - Static SQL for entity: Client.WorkOrderStatusTracking
NHibernate.Persister.Entity.AbstractEntityPersister: 2014-06-02 12:11:56,735 [9] DEBUG NHibernate.Persister.Entity.AbstractEntityPersister - Version select: SELECT WORK_ORDER_NBR, WORK_ORDER_TASK, GEN_ARG FROM TIDWOSTR WHERE WORK_ORDER_NBR = ? AND WORK_ORDER_TASK = ? AND GEN_ARG = ?
NHibernate.Persister.Entity.AbstractEntityPersister: 2014-06-02 12:11:56,736 [9] DEBUG NHibernate.Persister.Entity.AbstractEntityPersister - Snapshot select: SELECT workorders_.WORK_ORDER_NBR, workorders_.WORK_ORDER_TASK, workorders_.GEN_ARG, workorders_.WORK_ORDER_NBR as WORK1_0_, workorders_.WORK_ORDER_TASK as WORK2_0_, workorders_.GEN_ARG as GEN3_0_, workorders_.HOLD_CODE as HOLD4_0_, workorders_.HOLD_RELEASE_DATE as HOLD5_0_ FROM TIDWOSTR workorders_ WHERE workorders_.WORK_ORDER_NBR=? and workorders_.WORK_ORDER_TASK=? and workorders_.GEN_ARG=?
NHibernate.Persister.Entity.AbstractEntityPersister: 2014-06-02 12:11:56,738 [9] DEBUG NHibernate.Persister.Entity.AbstractEntityPersister - Insert 0: INSERT INTO TIDWOSTR (HOLD_CODE, HOLD_RELEASE_DATE, WORK_ORDER_NBR, WORK_ORDER_TASK, GEN_ARG) VALUES (?, ?, ?, ?, ?)
NHibernate.Persister.Entity.AbstractEntityPersister: 2014-06-02 12:11:56,738 [9] DEBUG NHibernate.Persister.Entity.AbstractEntityPersister - Update 0: UPDATE TIDWOSTR SET WORK_ORDER_NBR = ?, WORK_ORDER_TASK = ?, GEN_ARG = ?, HOLD_CODE = ?, HOLD_RELEASE_DATE = ? WHERE WORK_ORDER_NBR = ? AND WORK_ORDER_TASK = ? AND GEN_ARG = ?
NHibernate.Persister.Entity.AbstractEntityPersister: 2014-06-02 12:11:56,739 [9] DEBUG NHibernate.Persister.Entity.AbstractEntityPersister - Delete 0: DELETE FROM TIDWOSTR WHERE WORK_ORDER_NBR = ? AND WORK_ORDER_TASK = ? AND GEN_ARG = ?
NHibernate.SqlCommand.SqlSelectBuilder: 2014-06-02 12:11:56,770 [9] DEBUG NHibernate.SqlCommand.SqlSelectBuilder - The initial capacity was set too low at: 8 for the SelectSqlBuilder that needed a capacity of: 11 for the table TIDWOSTR workorders0_
NHibernate.Loader.Entity.AbstractEntityLoader: 2014-06-02 12:11:56,776 [9] DEBUG NHibernate.Loader.Entity.AbstractEntityLoader - Static select for entity Client.WorkOrderStatusTracking: SELECT workorders0_.WORK_ORDER_NBR as WORK1_0_0_, workorders0_.WORK_ORDER_TASK as WORK2_0_0_, workorders0_.GEN_ARG as GEN3_0_0_, workorders0_.HOLD_CODE as HOLD4_0_0_, workorders0_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR workorders0_ WHERE workorders0_.WORK_ORDER_NBR=? and workorders0_.WORK_ORDER_TASK=? and workorders0_.GEN_ARG=?
NHibernate.SqlCommand.SqlSelectBuilder: 2014-06-02 12:11:56,778 [9] DEBUG NHibernate.SqlCommand.SqlSelectBuilder - The initial capacity was set too low at: 8 for the SelectSqlBuilder that needed a capacity of: 11 for the table TIDWOSTR workorders0_
NHibernate.Loader.Entity.AbstractEntityLoader: 2014-06-02 12:11:56,778 [9] DEBUG NHibernate.Loader.Entity.AbstractEntityLoader - Static select for entity Client.WorkOrderStatusTracking: SELECT workorders0_.WORK_ORDER_NBR as WORK1_0_0_, workorders0_.WORK_ORDER_TASK as WORK2_0_0_, workorders0_.GEN_ARG as GEN3_0_0_, workorders0_.HOLD_CODE as HOLD4_0_0_, workorders0_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR workorders0_ WHERE workorders0_.WORK_ORDER_NBR=? and workorders0_.WORK_ORDER_TASK=? and workorders0_.GEN_ARG=?
NHibernate.SqlCommand.SqlSelectBuilder: 2014-06-02 12:11:56,779 [9] DEBUG NHibernate.SqlCommand.SqlSelectBuilder - The initial capacity was set too low at: 8 for the SelectSqlBuilder that needed a capacity of: 12 for the table TIDWOSTR workorders0_
NHibernate.Loader.Entity.AbstractEntityLoader: 2014-06-02 12:11:56,780 [9] DEBUG NHibernate.Loader.Entity.AbstractEntityLoader - Static select for entity Client.WorkOrderStatusTracking: SELECT workorders0_.WORK_ORDER_NBR as WORK1_0_0_, workorders0_.WORK_ORDER_TASK as WORK2_0_0_, workorders0_.GEN_ARG as GEN3_0_0_, workorders0_.HOLD_CODE as HOLD4_0_0_, workorders0_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR workorders0_ WHERE workorders0_.WORK_ORDER_NBR=? and workorders0_.WORK_ORDER_TASK=? and workorders0_.GEN_ARG=? for update
NHibernate.SqlCommand.SqlSelectBuilder: 2014-06-02 12:11:56,781 [9] DEBUG NHibernate.SqlCommand.SqlSelectBuilder - The initial capacity was set too low at: 8 for the SelectSqlBuilder that needed a capacity of: 12 for the table TIDWOSTR workorders0_
NHibernate.Loader.Entity.AbstractEntityLoader: 2014-06-02 12:11:56,782 [9] DEBUG NHibernate.Loader.Entity.AbstractEntityLoader - Static select for entity Client.WorkOrderStatusTracking: SELECT workorders0_.WORK_ORDER_NBR as WORK1_0_0_, workorders0_.WORK_ORDER_TASK as WORK2_0_0_, workorders0_.GEN_ARG as GEN3_0_0_, workorders0_.HOLD_CODE as HOLD4_0_0_, workorders0_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR workorders0_ WHERE workorders0_.WORK_ORDER_NBR=? and workorders0_.WORK_ORDER_TASK=? and workorders0_.GEN_ARG=? for update nowait
NHibernate.SqlCommand.SqlSelectBuilder: 2014-06-02 12:11:56,783 [9] DEBUG NHibernate.SqlCommand.SqlSelectBuilder - The initial capacity was set too low at: 8 for the SelectSqlBuilder that needed a capacity of: 12 for the table TIDWOSTR workorders0_
NHibernate.Loader.Entity.AbstractEntityLoader: 2014-06-02 12:11:56,784 [9] DEBUG NHibernate.Loader.Entity.AbstractEntityLoader - Static select for entity Client.WorkOrderStatusTracking: SELECT workorders0_.WORK_ORDER_NBR as WORK1_0_0_, workorders0_.WORK_ORDER_TASK as WORK2_0_0_, workorders0_.GEN_ARG as GEN3_0_0_, workorders0_.HOLD_CODE as HOLD4_0_0_, workorders0_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR workorders0_ WHERE workorders0_.WORK_ORDER_NBR=? and workorders0_.WORK_ORDER_TASK=? and workorders0_.GEN_ARG=? for update nowait
NHibernate.SqlCommand.SqlSelectBuilder: 2014-06-02 12:11:56,785 [9] DEBUG NHibernate.SqlCommand.SqlSelectBuilder - The initial capacity was set too low at: 8 for the SelectSqlBuilder that needed a capacity of: 11 for the table TIDWOSTR workorders0_
NHibernate.Loader.Entity.AbstractEntityLoader: 2014-06-02 12:11:56,786 [9] DEBUG NHibernate.Loader.Entity.AbstractEntityLoader - Static select for action NHibernate.Engine.CascadingAction+MergeCascadingAction on entity Client.WorkOrderStatusTracking: SELECT workorders0_.WORK_ORDER_NBR as WORK1_0_0_, workorders0_.WORK_ORDER_TASK as WORK2_0_0_, workorders0_.GEN_ARG as GEN3_0_0_, workorders0_.HOLD_CODE as HOLD4_0_0_, workorders0_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR workorders0_ WHERE workorders0_.WORK_ORDER_NBR=? and workorders0_.WORK_ORDER_TASK=? and workorders0_.GEN_ARG=?
NHibernate.SqlCommand.SqlSelectBuilder: 2014-06-02 12:11:56,787 [9] DEBUG NHibernate.SqlCommand.SqlSelectBuilder - The initial capacity was set too low at: 8 for the SelectSqlBuilder that needed a capacity of: 11 for the table TIDWOSTR workorders0_
NHibernate.Loader.Entity.AbstractEntityLoader: 2014-06-02 12:11:56,787 [9] DEBUG NHibernate.Loader.Entity.AbstractEntityLoader - Static select for action NHibernate.Engine.CascadingAction+RefreshCascadingAction on entity Client.WorkOrderStatusTracking: SELECT workorders0_.WORK_ORDER_NBR as WORK1_0_0_, workorders0_.WORK_ORDER_TASK as WORK2_0_0_, workorders0_.GEN_ARG as GEN3_0_0_, workorders0_.HOLD_CODE as HOLD4_0_0_, workorders0_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR workorders0_ WHERE workorders0_.WORK_ORDER_NBR=? and workorders0_.WORK_ORDER_TASK=? and workorders0_.GEN_ARG=?
NHibernate.Impl.SessionFactoryObjectFactory: 2014-06-02 12:11:56,790 [9] DEBUG NHibernate.Impl.SessionFactoryObjectFactory - initializing class SessionFactoryObjectFactory
NHibernate.Impl.SessionFactoryObjectFactory: 2014-06-02 12:11:56,791 [9] DEBUG NHibernate.Impl.SessionFactoryObjectFactory - registered: f105f54666ff41af8b4a14cf8d3713b3(unnamed)
NHibernate.Impl.SessionFactoryObjectFactory: 2014-06-02 12:11:56,792 [9] INFO NHibernate.Impl.SessionFactoryObjectFactory - no name configured
NHibernate.Impl.SessionFactoryImpl: 2014-06-02 12:11:56,793 [9] DEBUG NHibernate.Impl.SessionFactoryImpl - Instantiated session factory
NHibernate.Impl.SessionFactoryImpl: 2014-06-02 12:11:56,797 [9] DEBUG NHibernate.Impl.SessionFactoryImpl - Checking 0 named HQL queries
NHibernate.Impl.SessionFactoryImpl: 2014-06-02 12:11:56,798 [9] DEBUG NHibernate.Impl.SessionFactoryImpl - Checking 0 named SQL queries
NHibernate.Impl.SessionImpl: 2014-06-02 12:11:56,818 [9] DEBUG NHibernate.Impl.SessionImpl - [session-id=4e41d21c-975d-44a2-8d39-a7c36268c157] opened session at timestamp: 635373079168, for session factory: [/f105f54666ff41af8b4a14cf8d3713b3]
NHibernate.Loader.Criteria.CriteriaQueryTranslator: 2014-06-02 12:11:56,939 [9] DEBUG NHibernate.Loader.Criteria.CriteriaQueryTranslator - put criteria=WORK_ORDER_NBR = String@-66999783(hash) alias=this0_
NHibernate.Loader.Criteria.CriteriaQueryTranslator: 2014-06-02 12:11:56,954 [9] DEBUG NHibernate.Loader.Criteria.CriteriaQueryTranslator - returning alias=this_ for criteria=WORK_ORDER_NBR = String@-66999783(hash)
SELECT this_.WORK_ORDER_NBR as WORK1_0_0_, this_.WORK_ORDER_TASK as WORK2_0_0_, this_.GEN_ARG as GEN3_0_0_, this_.HOLD_CODE as HOLD4_0_0_, this_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR this_ WHERE this_.WORK_ORDER_NBR = ?
NHibernate.AdoNet.AbstractBatcher: 2014-06-02 12:11:57,082 [9] DEBUG NHibernate.AdoNet.AbstractBatcher - Opened new IDbCommand, open IDbCommands: 1
NHibernate.AdoNet.AbstractBatcher: 2014-06-02 12:11:57,084 [9] DEBUG NHibernate.AdoNet.AbstractBatcher - Building an IDbCommand object for the SqlString: SELECT this_.WORK_ORDER_NBR as WORK1_0_0_, this_.WORK_ORDER_TASK as WORK2_0_0_, this_.GEN_ARG as GEN3_0_0_, this_.HOLD_CODE as HOLD4_0_0_, this_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR this_ WHERE this_.WORK_ORDER_NBR = ?
NHibernate.Type.StringType: 2014-06-02 12:11:57,088 [9] DEBUG NHibernate.Type.StringType - binding '00322384' to parameter: 0
NHibernate.Loader.Loader: 2014-06-02 12:11:57,097 [9] INFO NHibernate.Loader.Loader - SELECT this_.WORK_ORDER_NBR as WORK1_0_0_, this_.WORK_ORDER_TASK as WORK2_0_0_, this_.GEN_ARG as GEN3_0_0_, this_.HOLD_CODE as HOLD4_0_0_, this_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR this_ WHERE this_.WORK_ORDER_NBR = :p0
NHibernate.SQL: 2014-06-02 12:11:57,108 [9] DEBUG NHibernate.SQL - SELECT this_.WORK_ORDER_NBR as WORK1_0_0_, this_.WORK_ORDER_TASK as WORK2_0_0_, this_.GEN_ARG as GEN3_0_0_, this_.HOLD_CODE as HOLD4_0_0_, this_.HOLD_RELEASE_DATE as HOLD5_0_0_ FROM TIDWOSTR this_ WHERE this_.WORK_ORDER_NBR = :p0;:p0 = '00322384' [Type: String (8)]
NHibernate.Connection.DriverConnectionProvider: 2014-06-02 12:11:57,111 [9] DEBUG NHibernate.Connection.DriverConnectionProvider - Obtaining IDbConnection from Driver
NHibernate.AdoNet.AbstractBatcher: 2014-06-02 12:11:57,295 [9] DEBUG NHibernate.AdoNet.AbstractBatcher - ExecuteReader took 181 ms
NHibernate.AdoNet.AbstractBatcher: 2014-06-02 12:11:57,297 [9] DEBUG NHibernate.AdoNet.AbstractBatcher - Opened IDataReader, open IDataReaders: 1
NHibernate.Loader.Loader: 2014-06-02 12:11:57,299 [9] DEBUG NHibernate.Loader.Loader - processing result set
NHibernate.Loader.Loader: 2014-06-02 12:12:19,606 [9] DEBUG NHibernate.Loader.Loader - done processing result set (0 rows)
NHibernate.AdoNet.AbstractBatcher: 2014-06-02 12:12:19,610 [9] DEBUG NHibernate.AdoNet.AbstractBatcher - Closed IDataReader, open IDataReaders :0
NHibernate.AdoNet.AbstractBatcher: 2014-06-02 12:12:19,611 [9] DEBUG NHibernate.AdoNet.AbstractBatcher - DataReader was closed after 22496 ms
NHibernate.AdoNet.AbstractBatcher: 2014-06-02 12:12:19,614 [9] DEBUG NHibernate.AdoNet.AbstractBatcher - Closed IDbCommand, open IDbCommands: 0
NHibernate.AdoNet.ConnectionManager: 2014-06-02 12:12:19,616 [9] DEBUG NHibernate.AdoNet.ConnectionManager - aggressively releasing database connection
NHibernate.Connection.ConnectionProvider: 2014-06-02 12:12:19,616 [9] DEBUG NHibernate.Connection.ConnectionProvider - Closing connection
NHibernate.Loader.Loader: 2014-06-02 12:12:19,619 [9] DEBUG NHibernate.Loader.Loader - total objects hydrated: 0
NHibernate.Engine.StatefulPersistenceContext: 2014-06-02 12:12:19,620 [9] DEBUG NHibernate.Engine.StatefulPersistenceContext - initializing non-lazy collections
NHibernate.AdoNet.ConnectionManager: 2014-06-02 12:12:19,624 [9] DEBUG NHibernate.AdoNet.ConnectionManager - after autocommit
NHibernate.Impl.SessionImpl: 2014-06-02 12:12:19,625 [9] DEBUG NHibernate.Impl.SessionImpl - transaction completion
NHibernate.AdoNet.ConnectionManager: 2014-06-02 12:12:19,626 [9] DEBUG NHibernate.AdoNet.ConnectionManager - aggressively releasing database connection
NHibernate.Impl.SessionImpl: 2014-06-02 12:12:19,630 [9] DEBUG NHibernate.Impl.SessionImpl - [session-id=4e41d21c-975d-44a2-8d39-a7c36268c157] running ISession.Dispose()
NHibernate.Impl.SessionImpl: 2014-06-02 12:12:19,632 [9] DEBUG NHibernate.Impl.SessionImpl - [session-id=4e41d21c-975d-44a2-8d39-a7c36268c157] executing real Dispose(True)
NHibernate.Impl.SessionImpl: 2014-06-02 12:12:19,634 [9] DEBUG NHibernate.Impl.SessionImpl - closing session
NHibernate.AdoNet.AbstractBatcher: 2014-06-02 12:12:19,635 [9] DEBUG NHibernate.AdoNet.AbstractBatcher - running BatcherImpl.Dispose(true)
I was able to get this working by setting up NHibernate to use Oracle's .NET provider instead of the default one. In order to do this, I had to do the following:
1. Download and unzip/install the appropriate Oracle Data Access Components, in my case the 32bit ODAC for Oracle 11g (ODAC112040Xcopy_32bit.zip).
2. Add a reference to the Oracle.DataAccess.dll found in the .\odp.net20\odp.net\bin\2.x directory.
3. Copy the OraOps11w.dll found in the .\odp.net20\bin directory directly to my projects bin directory.
4. Copy the following DLLs to my projects bin directory (not 100% sure which of these are necessary, I just copied them all)
.\instantclient_11_2\oci.dll
.\instantclient_11_2\ocijdbc11.dll
.\instantclient_11_2\ociw32.dll
.\instantclient_11_2\orannzsbb11.dll
.\instantclient_11_2\oraocci11.dll
.\instantclient_11_2\oraociei11
.\instantclient_11_2\orasql11
5. Updated my fluent configuration of NHibernate to use the Oracle driver as such:
Fluently.Configure()
.Database(OracleClientConfiguration.Oracle10.ConnectionString(OraConStr).Driver<NHibernate.Driver.OracleDataClientDriver>())
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>())
.BuildSessionFactory();
Once those changes where made, all table accesses worked, and worked a lot faster. So I'm going to chalk this up to a provider/driver issue. I can only assume that by default NHibernate uses the built-in Microsoft System.Data.OracleClient provider, which has been depreciated for a while.
Though that doesn't explain why when I directly used Microsoft's provider outside of NHibernate, I was able to access the table just fine. I may do further research into this, after I get my project out the door to the clients, because it is a puzzling predicament, and I can't leave a good puzzle unsolved.