0

VS 2010 のソリューションで単体テストを実行しようとしており、データベースとして SQLite を使用しようとしています。問題は、次のエラーが発生することです。

「テスト メソッド AECI.Clio.RecordableIncidentRate_Test.TestClass.QueryDataTest が例外をスローしました: System.Data.SQLite.SQLiteException: SQLite エラー no such テーブル: dbo.vDimIncident」

SQLBrowser を使用して、テーブルがそこにあることを再確認しました。テーブルの名前を vDimIncident から dbo.vDimIncident に変更しようとしても無駄でした。

何が間違っているのかわかりません。ここに私のエラートレースがあります:

System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain)
System.Data.SQLite.SQLiteCommand.BuildNextCommand()
System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index)
System.Data.SQLite.SQLiteDataReader.NextResult()
System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
System.Data.SQLite.SQLiteCommand.ExecuteDbDataReader(CommandBehavior behavior)
System.Data.Common.DbCommand.ExecuteReader()
System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
AECI.Clio.RecordableIncidentRate.Harvester.QueryData(HarvestTargetTimeRangeUTC ranges) in C:\tfsprod\AECI.Clio.RecordableIncidentRate\Harvester.cs: line 43
AECI.Clio.RecordableIncidentRate_Test.TestClass.HarvesterHandle.QueryDataTest(HarvestTargetTimeRangeUTC ranges) in C:\tfsprod\AECI.Clio.RecordableIncidentRate_Test\TestClass.cs: line 167
AECI.Clio.RecordableIncidentRate_Test.TestClass.QueryDataTest() in C:\tfsprod\AECI.Clio.RecordableIncidentRate_Test\TestClass.cs: line 54

これが何か関係があるかどうかはわかりませんが、接続文字列は次のとおりです。

public void ConfigureHarvester(System.Configuration.Configuration configuration)
{
    context = new DataClassesDataContext(new System.Data.SQLite.SQLiteConnection(@"Data Source= C:\tfsprod\C#SQLite\Community.CsharpSqlite.shell\bin\Debug\test.db"));

}
4

1 に答える 1

0

私はそれを考え出した。dbml ファイルに移動し、次にデータ クラスのプロパティに移動して、「dbo」を削除する必要がありました。テーブル名の前から。それが適切な方法であるかどうかはわかりませんが、機能します。

于 2012-06-27T18:30:18.237 に答える