【问题标题】:Create Records with Linq to SQLite via DbLinq通过 DbLinq 使用 Linq to SQLite 创建记录
【发布时间】:2009-09-25 14:46:35
【问题描述】:

我(经过一番努力)让 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?

【问题讨论】:

  • 我正在尝试使用 dbmetal 生成 .cs 代码。我得到一个例外。您能否发布一个示例,说明您如何从 sqlite 数据库生成 .cs(code) 文件?
  • @Jitesh 你能告诉我你是如何使用 DbMetal 获得 cs 和 dbml 文件的吗?如果可能的话在这里回答我的问题stackoverflow.com/questions/2396143/…

标签: c# linq sqlite dblinq


【解决方案1】:

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

旧:

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

新:

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

就这么简单。

【讨论】:

  • SqliteConnection 类在哪里?
  • 好吧,回答我自己的问题,你需要参考 System.Data.SQLite.DLL 库
猜你喜欢
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 2010-11-13
相关资源
最近更新 更多