国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

基于.NET C#的 sqlite 數據庫 ORM 【Easyliter】

2019-11-17 02:05:56
字體:
來源:轉載
供稿:網友

基于.NET C#的 sqlite 數據庫 ORM 【Easyliter】

因為工作原因經常用到SQLITE數據庫,但又找不到好用的ORM所以自個整理了一個簡單好用的輕量極ORM框架:Easyliter

功能介紹:

1、支持SQL語句操作

2、支持 List<T>和DataTable兩種返回格式

3、支持拉姆達表達示進行數據查詢和分頁

4、內置創建實體類函數

5、依賴于 System.Data.SQLite

使用方法如下:

using Sqlite.Model;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Easyliter;namespace test{    class PRogram    {        static void Main(string[] args)        {            var connstr = "DataSource=" + System.AppDomain.CurrentDomain.BaseDirectory + "mapping.sqllite";            //reference System.Data.SQLite            //引用 System.Data.SQLite            Client e = new Client(connstr);            //Generate entity classes from a database            //從數據庫生成實體類            //CreateClassFile(e);            //Delete Operation            //刪除操作            DeleteData(e);            //update operation            //更新操作            UpdateData(e);            //insert operation            //插入數據            InsertData(e);            //Search operation            //查詢操作            Search(e);            //基本操作            //Basic operation            BasicOperation(e);        }        //search operation        //查詢操作        private static void Search(Client e)        {            ////By sql            List<Product> list = e.Select<Product>("select * from product where  id>@num", new { num = 100 });            //No parameter            List<Category> list2 = e.Select<Category>();            //Single parameter            List<Product> list3 = e.Select<Product>(x => x.id > 200);            //Multiple parameter            List<Product> list4 = e.Select<Product>(x => x.id > 200,                                                    x => x.sku == "skx" || x.sku == null);            //By page            int count = 0;            List<Product> list5 = e.SelectPage<Product>(1, 10, ref count, " id  desc",                                            x => x.id > 10,//條件1                                            x => true);//條件2 ...條件N            //Query extenions            var extObj = e.Query<Product>().Where(x => x.id > 10).Where(x => x.id > 2).Select("id,sku")                .OrderBy(El_Sort.asc, "id")                .OrderBy(El_Sort.desc, "sku").Take(100);            //get list            var list6 = extObj.ToList();            //get dataTable            var dataTable = extObj.ToDataTable();            //get single            int num = 500;            var item = e.Query<Product>().Where(c=>c.id==num).Single();            //get first            var first = extObj.First();            //get sql            string sql = extObj.ToSql();            //left join            List<V_Product> VProductList = e.Query<Product>()                .Join<Product, Category>(false /* true is  inner join*/ )                 .On(" Product.category_id=Category.id ")                .OrderBy(El_Sort.desc, " Product.id")                .Select("Product.*,Category.name as category_name").JoinWhere("Product.id>300").ToNewList<Product, V_Product>();            //left join            string VProductSql = e.Query<Product>()                 .Join<Product, Category>(false /* true is  inner join*/ )                 .On(" Product.category_id=Category.id ")                 .OrderBy(El_Sort.desc, " Product.id")                 .Select("Product.*,Category.name as category_name").JoinWhere("Product.id>300").ToSql();        }        //insert operation        //插入數據        private static void InsertData(Client e)        {            //添加            Product p = new Product()            {                category_id = 2,                sku = "sku",                title = "title"            };            e.Insert<Product>(p);        }        //update operation        //更新操作        private static void UpdateData(Client e)        {            e.Update<Product>(new { sku = "AGA123101", category_id = 1 } /*update columns*/, new { id = 434 }/*where columns*/);        }        //Delete operation        //刪除操作        private static void DeleteData(Client e)        {            e.Delete<Product>(100);//primary key            e.Delete<Product>(new int[] { 1, 2, 3 });        }        //Generate entity classes from a database        //從數據庫生成實體類        private static void CreateClassFile(Client e)        {            //by database            var createCalss1 = e.CreateClass("Sqlite.Model"/*命名空間*/, @"D:/TFS/EmailBackup/Easyliter/Test/model"/*路徑*/);                        //by sql            var createCalss2 = e.CreateClassBySql("Sqlite.Model", @"D:/TFS/EmailBackup/Easyliter/Test/model1", "viewproduct", "select id,sku from product ");        }        //基本操作        //Basic operation        private static void BasicOperation(Client e)        {            var dt = e.GetDataTable("select * from product");            var intVal = e.GetInt("select count(*) from product");            var stringVal = e.GetString("select sku from product where id=500 ");            //e.ExecuteNonQuery("inset into ..");        }    }}

源碼地址:http://git.oschina.net/sunkaixuan/easyliter


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 确山县| 尉犁县| 北碚区| 武义县| 浙江省| 仁寿县| 油尖旺区| 朝阳区| 黑水县| 安化县| 湘潭县| 扎赉特旗| 察雅县| 孙吴县| 永昌县| 辽阳县| 杨浦区| 贺兰县| 汾西县| 嘉荫县| 黄石市| 凭祥市| 景德镇市| 稷山县| 察雅县| 南昌市| 江津市| 仙游县| 陇南市| 姜堰市| 阳江市| 清丰县| 峨眉山市| 辽宁省| 水城县| 仁寿县| 安义县| 岗巴县| 孟州市| 河西区| 察隅县|