Linq to Sqlite
主要参考这个 :http://www.cnblogs.com/walkingboy/archive/2009/10/27/1590988.html
说一下遇到的问题 DbMetal.exe --conn="data source=C:\Users\Shuan\Desktop\DbLinq-0.20.1\PrivacyFile.db" --database=TestDataContext --provider=SQLite --code=Test.cs --language=C# --namespace=LinqToSQLite
直接运行 cmd 报错
说的是 不能找到 SQLite这个程序集云云 实际上是System.Data.SQLite.DLL这个DLL ,找到这个东东,拷贝到对应目录下(版本一定要对应,太新的不行,最好是DBLinq源代码文件夹lib目录中的那个) ,生成成功,该改的就改改。
使用:添加DbLinq.dll、DbLinq.Sqlite.dll、System.Data.SQLite.DLL引用。
初始化DataContext时需要传一个参数 ,这里不能单纯地传连接字符串,应该传一个SQLiteConnection连接。因为穿连接字符串,程序会去初始化一个SQLServer的Connection。
public PrivacyDataContext(string connectionString) : base(connectionString) { OnCreated(); }
public PrivacyDataContext(IDbConnection connection) : base(connection, new SqliteVendor()) { OnCreated(); }
得到SQLiteConnection:
DbProviderFactory fact = DbProviderFactories.GetFactory("System.Data.SQLite"); DbConnection cnn = fact.CreateConnection(); if (cnn==null) { return null; } cnn.ConnectionString=String.Format("Data Source={0}", Environment.CurrentDirectory + @"/PrivacyFile.db"); cnn.Open();
搞定!