C# .NET4.0+;Linq+;SQLite+;DbLink-如何使所有功能一起工作?
我正在开发(或试图开发)一个C#项目,它将数据存储在SQLite数据库中。我想使用Linq进行对象关系映射。根据我读到的内容,如果您下载并安装了SQLite,就可以将其与SQLite一起使用 虽然它主要用于从数据库读取数据,但在尝试插入任何内容时,我会遇到SQL语法错误。我已在日志中检查Linq正在尝试执行这样的查询:C# .NET4.0+;Linq+;SQLite+;DbLink-如何使所有功能一起工作?,c#,.net,linq,sqlite,dblinq,C#,.net,Linq,Sqlite,Dblinq,我正在开发(或试图开发)一个C#项目,它将数据存储在SQLite数据库中。我想使用Linq进行对象关系映射。根据我读到的内容,如果您下载并安装了SQLite,就可以将其与SQLite一起使用 虽然它主要用于从数据库读取数据,但在尝试插入任何内容时,我会遇到SQL语法错误。我已在日志中检查Linq正在尝试执行这样的查询: {INSERT INTO [sometable]([columnone], [columntwo]) VALUES (@p0, @p1) SELECT CONVERT(Int,
{INSERT INTO [sometable]([columnone], [columntwo])
VALUES (@p0, @p1)
SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]
-- @p0: Input String (Size = 4000; Prec = 0; Scale = 0) [foo]
-- @p1: Input String (Size = 4000; Prec = 0; Scale = 0) [bar]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.0.30319.1
}
它似乎是针对MS Server的SQL查询,而不是SQLite。镦粗部分是这个SqlProvider(Sql2008)
。它不应该被dblinq提供的东西所取代吗
我的数据库类如下所示:
[Database]
class MyDatabase : DataContext
{
public LibraryDatabase()
: base(new SQLiteConnection(
"DbLinqProvider=Sqlite; " +
"Data Source=database.s3db;"))
{
}
public Table<SomeObject> SomeTable;
}
表之间的所有关系都被注释掉以进行测试(没有帮助)。
然后插入具有以下代码的元素:
myDatabase.SomeTable.InsertOnSubmit(element);
myDatabase.SubmitChanges();
我猜你是在用实体框架做ORM 在MyDatabase类中,您继承的是。这表示LINQ到SQL框架的主要入口点。这对于SQL Server非常有效。SQLite不太好用 而是从类继承。这为查询和处理实体数据作为对象提供了便利。您可能需要修改用于查询的代码,但这应该非常简单 在实体框架和ObjectContext上做一些搜索,这里有很多很好的例子
Patrick.我猜您是在使用实体框架进行ORM 在MyDatabase类中,您继承的是。这表示LINQ到SQL框架的主要入口点。这对于SQL Server非常有效。SQLite不太好用 而是从类继承。这为查询和处理实体数据作为对象提供了便利。您可能需要修改用于查询的代码,但这应该非常简单 在实体框架和ObjectContext上做一些搜索,这里有很多很好的例子
Patrick.表映射看起来像什么?表映射看起来像什么?
myDatabase.SomeTable.InsertOnSubmit(element);
myDatabase.SubmitChanges();