I am using the crm_demo.db to generate the DataContext using VS2010 and .NET 4.0. The test code to read the existing db succeeds, but the code to create a new, empty db fails with an exception. The generated DataContext code has not been modified in any way, other than a change to the namespace to match the model dll namespace.
Code: Select all
private CrmDemoDataContext CreateContext(string path, bool deleteExisting)
{
bool fileExists = File.Exists(path);
if (!fileExists || deleteExisting)
{
FileStream s = File.Create(path); // create empty file
s.Close();
}
CrmDemoDataContext db = new CrmDemoDataContext(string.Format("Data Source={0}", path));
if (!fileExists || deleteExisting)
{
db.CreateDatabase();
}
return (db);
}
[TestMethod]
public void CreateDb()
{
string path = @"E:\Dave\projects\EF\Devart\CRMTutorial\CRMDemo\CrmDemoTest\crm_test.db";
using (CrmDemoDataContext db = CreateContext(path, true))
{
Assert.IsTrue(db.Companies.Count() == 0);
}
}
[TestMethod]
public void ReadDb()
{
string path = @"E:\Dave\projects\EF\Devart\CRMTutorial\crm_demo.db";
using (CrmDemoDataContext db = CreateContext(path, false))
{
int nCompanies = db.Companies.Count();
Assert.IsTrue(nCompanies > 0);
}
}
Inner ExceptionError on executing DbCommand
SQLite error \r\n \"Contact_0\":syntax error
- at Devart.Data.Linq.LinqCommandExecutionException.CanThrowLinqCommandExecutionException(String message, Exception e)
at Devart.Data.Linq.Provider.DataProvider.CommandExecuter.Execute(List`1 sqls)
at Devart.Data.Linq.Provider.DataProvider.CreateDatabase(Boolean ignoreErrors, Boolean createSchema)
at Devart.Data.SQLite.Linq.Provider.SQLiteDataProvider.CreateDatabase(Boolean ignoreErrors, Boolean createSchema)
at Devart.Data.Linq.Provider.DataProvider.Devart.Data.Linq.Provider.IProvider.CreateDatabase(Boolean ignoreErrors, Boolean createSchema)
at Devart.Data.Linq.DataContext.CreateDatabase(Boolean ignoreErrors, Boolean createSchema)
at Devart.Data.Linq.DataContext.CreateDatabase()
at CrmDemoTest.UnitTest1.CreateContext(String path, Boolean deleteExisting) in E:\Dave\projects\EF\Devart\CRMTutorial\CRMDemo\CrmDemoTest\UnitTest1.cs:line 30
at CrmDemoTest.UnitTest1.CreateDb() in E:\Dave\projects\EF\Devart\CRMTutorial\CRMDemo\CrmDemoTest\UnitTest1.cs:line 39