[TOC] ## 常规操作 ### 更新 **2022/03/16** - 新增MongoDB的驱动支持(暂不支持`Group`和`Join`) - 新增`InsertAll`支持多数据插入 **2022/03/25** - 新增简单的PostgreSQL驱动 ### 创建实例 ``` var db = IORM.GetMYSQL("MYSQL"); //新增mongodb数据库支持 var mongo = IORM.GetMongoDB("MONGODB"); //通常情况下connectString会在配置文件里设置 var connectString = GLOBAL.CONFIG.GetString("MYSQLConnect"); var connectResult = db.Connect(connectString); if (connectResult) { Logger.Info("数据库连接成功!"); } ``` ### 插入数据 ```c# var insertData = new Model.Company{ Id = System.Guid.NewGuid().ToString("N"), CreateTime = DateTime.Now, CompanyName = "梵天科技" }; // 如果Id是自增,insertId才会有返回值 var insertId = db.Table<Model.Company>().Insert(insertData); //新增InsertAll var moreData = new List<Model.Company>(); moreData.Add(insertData); moreData.Add(insertData); //...添加更多数据 db.Table<Model.Company>().InsertAll(moreData); ``` ### 更新数据 ``` insertData.LoginName = "admin" insertData.Password = "123456"; var DBItem = db.Table<Model.Company>().Where(m => m.Id == inserId); DBItem.Update(insertData); //只更新公司名称 DBItem.UpdateValue(m => m.CompanyName.Equals("浙江友信")); //更新多个字段 DBItem .SetUpdateValue(m => m.CompanyName.Equals("梵天科技")) .SetUpdateValue(m => m.LoginName.Equals("fantian")) .UpdateValues(); ``` ### 删除数据 ``` var DBItem = db.Table<Model.Company>().Where(m => m.Id == inserId); DBItem.Delete(); ``` ### 获取单条数据 ``` var item = db.Table<Model.Company>().Where(m => m.Id == inserId).FindOne(); ``` ### 获取指定字段 ``` item.SetFindField(m => new object[]{ m.Id, m.Title}).FindOne() ``` 2022.04.22 新增 连续设置 和 单对象传参 ``` item.SetFindField(m => m.Id); item.SetFindField(m => m.Title); item.SetFindField<Model.Person>(m => m.Name); item.FindOne(); ``` ### 获取多条数据 ``` var items = db.Table<Model.Company>().FindAll(); ``` ### 分页获取数据 ``` var items = db.Table<Model.Company>().Page(10, 1).FindAll(); ``` ### 数据排序 ``` var descItems = db.Table<Model.Company>().Desc(m => m.Id).FindAll(); var ascItems = db.Table<Model.Company>().Asc(m => m.Id).FindAll(); //排序支持多优先级 var descMore = db.Table<Model.Company>().Desc(m => m.CreateTime).Desc(m => m.Id).FindAll(); //混合优先级 var descMore = db.Table<Model.Company>().Asc(m => m.CreateTime).Desc(m => m.Id).FindAll(); ``` ### 分组 ``` var items = db.Table<Model.Company>().Group(m => m.Province).FindAll(); ``` ### 获取Count ``` var count = db.Table<Model.Company>().Count(); ``` ### Sum运算 ``` var sum = db.Table<Model.Company>().SUM(m => m.LoginCount); ``` ### AVG运算 ``` var avg = db.Table<Model.Company>().AVG(m => m.LoginCount); ``` ### 计数字段 ``` db.Table<Model.Company>().Where(m => m.Id == inserId).UpdateValue(m => m.LoginCount + 1) ``` ### 语句查询 (仅MySQL支持) ``` var items = db.Query<Model.Company>("SELECT * FROM v1_company"); ``` ### 抛出异常 - 查看语句 ``` db.Table<Model.Company>().ThrowSQLString().Count(); ``` - 错误捕捉 ``` db.Table<Model.Company>().ThrowOnError().Count(); ``` - 关闭错误抛出 2022/04/02 更新为默认抛出错误 ``` db.Table<Model.Company>().CloseThrowOnError().Count(); ```