Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确使用Linq到SQLite?_Linq_Sqlite - Fatal编程技术网

如何正确使用Linq到SQLite?

如何正确使用Linq到SQLite?,linq,sqlite,Linq,Sqlite,我已经从下载并安装了linq到sqlite 但是下面的测试代码: [ Table( Name = "items" ) ] public class MyItem { [ Column( IsPrimaryKey = true ) ] int MyId; } public class MyDb : DataContext { public MyDb( IDbConnection c ) : base( c ) {} public Table< MyIte

我已经从下载并安装了linq到sqlite 但是下面的测试代码:

[ Table( Name = "items" ) ]
public class MyItem
{
  [ Column( IsPrimaryKey = true ) ]
  int MyId;
}

public class MyDb : DataContext
{
  public MyDb( IDbConnection c ) : base( c ) {}
  public Table< MyItem > myItems;
}

var connection = new SQLiteConnection( "Data Source=my.db;" )
var database = new MyDb( connection );
database.CreateDatabase();
[表(Name=“items”)]
公共类MyItem
{
[列(IsPrimaryKey=true)]
int-MyId;
}
公共类MyDb:DataContext
{
公共MyDb(IDBC连接):基(c){}
公共表myItems;
}
var connection=newsqliteconnection(“数据源=my.db;”)
var数据库=新的MyDb(连接);
CreateDatabase();
在“CreateDatabase”中失败,出现异常:

SQLite错误

“数据库”附近:语法错误


我做错了什么?

似乎Microsoft SQL中的“DataContext”基类是特定的。SQLite ADO.NET支持LINQ,但建议使用GUI向导生成数据库访问类。此类类不会将“DataContext”作为子类,并允许在其上使用LINQ。

您混淆了LINQ到SQL(仅适用于SQL Server)和LINQ到实体(也称为实体框架)。SQLite ADO.NET提供程序支持实体框架,而不是Linq to SQL。DataContext类用于Linq到SQL,而不是实体框架

正如地狱之眼所建议的,您应该使用实体模型设计器。可以手动创建映射,但这并不容易

顺便说一下,Entity Framework没有CreateDatabase方法,因此您将无法以这种方式创建数据库(而且SQLite也没有create database指令)