2

我已经(经过一些重大努力)让 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?

4

1 回答 1

3

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

老的:

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

新的:

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

就这么简单。

于 2009-10-02T15:59:06.007 回答