通过DbLinq使用Linq to SQLite创建记录

时间:2009-09-25 14:46:36

标签: c# linq sqlite dblinq

我(经过一些重大努力)让DbLinq在OS X上使用最新版本的Mono。

是否有人通过DbLinq / Sqlite成功创建了数据库实体?

例如,我有下表:

CREATE TABLE UserType (
    id integer primary key,
    description text )

我已生成我的* .cs文件,并使用以下代码尝试创建新的UserType条目:

UserType newUserType = new UserType();
newUserType.id = null // Attempting to get SQLite to increment
newUserType.description = "Administrator";

db.UserType.InsertOnSubmit(newUserType);

db.SubmitChanges();

对SubmitChanges的调用抛出了与特别相关的无效语法的异常(我猜测在参数化查询中进行插入)。看起来生成的代码是特定于SQL Server的。是否存在我缺少的修复或标记,或者是否通过DbLinq将记录插入到不支持的SQLite中?

1 个答案:

答案 0 :(得分:3)

事实证明,在使用DbLinq时,您需要修改数据库连接字符串,以便Mono的System.Data.Linq知道在生成SQL代码时要使用哪个数据库提供程序。

旧:

SqliteConnection("Data Source=MyDatabase.sqlite");

新:

SqliteConnection("DbLinqProvider=Sqlite;Data Source=MyDatabase.sqlite");

就这么简单。