simple.data是一个轻量级的、动态的数据访问组件,支持.net4.0。
1、必须条件和依赖性:
- v4.0 or greater of the .NET framework, or
- v2.10 or greater of the Mono framework
项目中引用
- Simple.Data.Core
- A Simple.Data adaptor
- A Simple.Data provider
2、PM> Install-Package
Simple.Data.Oracle
Simple.Data.SqlServer
...
3、打开一个连接
var db = Database.OpenConnection("连接字符串名称");
4、 命名规则
精确匹配、大小写不敏感
5、CRUD操作
5.1、Insert(对象或者命名参数)
db.Author.Insert(UserName:"123",FullName:"234",CreateDate:DateTime.Now);
5.2、Read
-All()
-Find(简单表达式)
-Get(主键)
-FindAll(选择条件)
-FindAllByXXX(参数)
IEnumerable<dynamic> authors=db.Author.All();
var author=db.Author.FindAllByFullName("234");
5.3、Update(对象或者命名参数)
-Update
-UpdateByXXX(参数)
-UpdateAll(选择条件)
db.Author.UpdateByUserName(UserName:"123",FullName:"2334");
5.4、Delete
-Delete(对象或者命名参数)
-DeleteByXXX(参数)
-DeleteAll(选择条件)
db.Author.DeleteByUserName(UserName:"123");
6、转换
6.1、隐式转换
返回单条结果:var product=db.Product.Get(1);
返回多条结果:var products=db.product.FindAllByFactoryName("baogang");
IEnumerable<dynamic> products=db.product.FindAllByFactoryName("baogang");
6.2、强类型转换
IEnumerable<Product> products=db.product.FindAllByFactoryName("baogang").Cast<Product>();
List<dynamic> products=db.product.FindAllByFactoryName("baogang").ToList();
List<Product> products=db.product.FindAllByFactoryName("baogang").ToList<Product>();
Product[] products=db.product.FindAllByFactoryName("baogang").ToArray<Product>();
dynamic[] products=db.product.FindAllByFactoryName("baogang").ToArray();
7、返回数量结果
-GetCount
-GetCountBy
-Exists,Any
-ExistsBy,AnyBy
var isFactoryExists=db.Product.Exists(FactoryName=="baogang");
var isFactoryExists=db.Product.Any(FactoryName=="baogang");
var factoryCount=db.Product.GetCount(FactoryName=="baogang");
var factoryCount=db.Product.GetCountBy(FactoryName:"baogang");
var isFactoryExists=db.Product.AnyBy(FactoryName:"baogang",FactoryName:"angang");
8、查询修改
8.1、返回结果列
var products=db.Product.All().Select(db.Product.ProductName);
var products=db.Product.All().Select(db.Product.AllColumns());
8.2、去重
var products=db.Product.All().Select(db.Product.ProductName,db.Product.FactoryName.Distinct());
8.3、列别名
var products=db.Product.All().Select(db.Product.ProductName.As("Name"));
8.4、过滤
var products=db.Product.All().Where(FactoryName=="baogang");
var orderDetails=db.OrderDetail.All().Where(db.OrderDetail.Price*db.OrderDetail.Quantity>2000);
var products=db.product.All().Where(db.Product.FactoryName==new[][{"baogang","angang"});//in
var orderDetails=db.OrderDetail.All().Where(db.OrderDetail.Price==400.to(440));//between
var products=db.product.All().Where(db.Product.FactoryName.Like("%a%"));//like