基于.NET C#的 sqlite 数据库 ORM 【Easyliter】
2015-05-13 23:31
483 查看
因为工作原因经常用到SQLITE数据库,但又找不到好用的ORM所以自个整理了一个简单好用的轻量极ORM框架:Easyliter
功能介绍:
1、支持SQL语句操作
2、支持 List<T>和DataTable两种返回格式
3、支持拉姆达表达示进行数据查询和分页
4、内置创建实体类函数
5、依赖于 System.Data.SQLite
使用方法如下:
源码地址:http://git.oschina.net/sunkaixuan/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
相关文章推荐
- 基于 SQLite 数据库的 C# 实体模型的实现
- C# 程序中使用 SQLite 数据库
- .NET(C#)连接各类数据库-集锦
- .NET 中使用 SQlite 数据库_1.新数据库的创建
- C# 嵌入数据库SQLite的简单用法
- C# 压缩 SQLite 数据库
- .NET(C#)连接各类数据库
- 在.NET C#中使用sqlite2008-01-28 14:53
- 数据存储之SQLite -- 如何查看数据库文件(基于AS开发工具)
- 基于C#的MongoDB数据库开发应用(2)--MongoDB数据库的C#开发
- .NET(C#)连接各类数据库
- [开源].NET高性能框架Chloe.ORM-完美支持SQLite
- 获取数据库中的所有表(C#)-.NET教程,C#语言
- .NET(C#)连接各类数据库-集锦
- 【JAVA与C#比较】ORM操作数据库
- .NET(C#)连接各类数据库集锦
- 基于C#语言开发的IM系统--数据库结构图(通讯框架为networkcomms2.3.1)【即将开源】
- C#编写基于.Net IOCP的高性能服务器
- 【玩转SQLite系列】(七)打造轻量级ORM工具类SQLiteDbUtil操作数据库
- .NET跨平台:在Linux上基于ASP.NET 5用EF7生成数据库