[Nhibernate问题]通过NHibernate取得dataset遇到问题!!!求助!!
错误:
无法将类型为“NHibernate.JetDriver.JetDbCommand”的对象强制转换为类型“System.Data.OleDb.OleDbCommand”
源代码:
private static void DoLoadDataSet(IDbCommand command, DataSet dataSet, string[] tableNames)
{
if (tableNames == null) throw new ArgumentNullException("tableNames");
if (tableNames.Length == 0)
{
throw new ArgumentException("缺少数据表名:tableNames");
}
for (int i = 0; i < tableNames.Length; i++)
{
if (string.IsNullOrEmpty(tableNames[i])) throw new ArgumentException(string.Concat("数据表名不能为空:tableNames[", i, "]"));
}
DataTable dt = DbProviderFactories.GetFactoryClasses();
DbProviderFactory providerFactory = GetFactory();
using (DbDataAdapter adapter = providerFactory.CreateDataAdapter())
{
if (command is JetDbCommand)
{
JetDbCommand jetCommand = command as JetDbCommand;
((IDbDataAdapter)adapter).SelectCommand = jetCommand;//此处出问题
}
else
((IDbDataAdapter)adapter).SelectCommand = command;
try
{
DateTime startTime = DateTime.Now;
string systemCreatedTableNameRoot = "Table";
for (int i = 0; i < tableNames.Length; i++)
{
string systemCreatedTableName = (i == 0)
? systemCreatedTableNameRoot
: systemCreatedTableNameRoot + i;
adapter.TableMappings.Add(systemCreatedTableName, tableNames[i]);
}
adapter.Fill(dataSet);
}
catch (Exception e)
{
throw;
}
}
}