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();

           

搞定!

posted @ 2012-11-04 00:28  ljinshuan  阅读(1013)  评论(0编辑  收藏  举报