我(经过一些重大努力)让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中?
答案 0 :(得分:3)
事实证明,在使用DbLinq时,您需要修改数据库连接字符串,以便Mono的System.Data.Linq知道在生成SQL代码时要使用哪个数据库提供程序。
旧:
SqliteConnection("Data Source=MyDatabase.sqlite");
新:
SqliteConnection("DbLinqProvider=Sqlite;Data Source=MyDatabase.sqlite");
就这么简单。