我是靠谱客的博主 狂野歌曲,最近开发中收集的这篇文章主要介绍基于.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:TFSEmailBackupEasyliterTestmodel"/*路径*/);
//by sql
var createCalss2 = e.CreateClassBySql("Sqlite.Model", @"D:TFSEmailBackupEasyliterTestmodel1", "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

 

最后

以上就是狂野歌曲为你收集整理的基于.NET C#的 sqlite 数据库 ORM 【Easyliter】的全部内容,希望文章能够帮你解决基于.NET C#的 sqlite 数据库 ORM 【Easyliter】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部