//相对路径 public static string ConnectionString= @"DataSource=SqlSugar4xTest.sqlite"; //完整路径 public static string ConnectionString= @"DataSource=c:\database\SqlSugar4xTest.sqlite"; //动态获取完整路径 Path.Combine(Environment.CurrentDirectory, "SampleDB.db")
NUGET安装
1. SQLitePCLRaw.bundle_e_sqlcipher2.0.4
2. Microsoft.Data.Sqlite.Core 5.0.9
3. SqlSugarCore 或者 SqlSugarCore_NetCore2 (支持.Framework 4.7.2)
string dbName = Path.Combine(Environment.CurrentDirectory, "SampleDB.db"); string connStr=new SqliteConnectionStringBuilder(){ DataSource= dbName, Mode=SqliteOpenMode.ReadWriteCreate ,Password ="admin" }.ToString();
性能优化:因为加密Open会很慢所以建议
使用:SqlsugarClient的单例+关闭自动释放 , 如果业务所有用到db全部用 Lock(db){ db.xxx;db.xxx; } 防止并发问题
因为SqlsugarClient不是线程安全对象所以加Lock防止并发(免费加密目前不适合高并发项目,只适单用户项目)
注意:不是加密不要这么用 ,这么用主要是解决免费加密Open慢的问题
当遇到Nuget安装System.Data.SQLite失败或者无法安装,或者一直报引用兼容错误不知道如何解决请使用 新人包
1、Nuget安装SqlSugar或者引用最新的SqlSugar.dll
2、解压下载文件包
3、System.Data.SQLite.dll 引用到项目
4、x86 x64 2个文件夹扔到bin下面的dll 同一目录
如果还不会安装的话可以拿这个DEMO跑了试试
通过异步是可以实现并行写入
var ts = new List<Task>(); for (int i = 0; i < 1000; i++)//建议一次执行Task不工 { ts.Add(Task.Run(async () => { await db.CopyNew().Queryable<Order>().FirstAsync(); })); } Task.WhenAll(ts).GetAwaiter().GetResult();
注意:CopyNew和 Async方法是重点不能是同方法
1、database is locked
这个输出是正常现象用 db.colse会有 用db.dispose就不会有 如果你真想没有,那么你就用using(var db=new sqlsugarclient)
2、The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception
出现这个错一般是安装问题,独立安装 Microsoft.Data.Sqlite.Core 每个类都统一最新版本
2016 © donet5.comApache Licence 2.0