2012-06-27 64 views
0

我想在VS 2010中的解决方案上运行一些单元测试,并试图使用SQLite作为我的数据库。问题是,我得到以下错误:System.Data.SQLite.SQLiteException:SQLite错误没有这样的表错误

“测试方法AECI.Clio.RecordableIncidentRate_Test.TestClass.QueryDataTest抛出异常: System.Data.SQLite.SQLiteException:SQLite的错误 没有这样的表: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")); 

} 
+1

你仔细检查,你正在加载好的数据库文件(路径检查)? – cichy

+0

@cichy - 是的,路径很好,可以在SQLite数据库浏览器中打开数据库文件。 –

回答

0

我想通了。我不得不去dbml文件,然后到数据类的属性并删除“dbo”。从我的表名前面。我不知道这是否是适当的方式,但它的工作原理。