HTML5技术

.NET ORM框架 SqlSuagr4.0 功能详解与实践【开源】 - 孙凯旋(3)

字号+ 作者:H5之家 来源:H5之家 2017-06-19 17:00 我要评论( )

SqlFunc.ToInt32( object value) SqlFunc.ToInt64( object value)SqlFunc.ToDate( object value) SqlFunc.ToString( object value) SqlFunc.ToDecimal( object value) SqlFunc.ToGuid( object value) SqlFunc.ToDou

SqlFunc.ToInt32(object value) SqlFunc.ToInt64(object value) SqlFunc.ToDate(object value) SqlFunc.ToString(object value) SqlFunc.ToDecimal(object value) SqlFunc.ToGuid(object value) SqlFunc.ToDouble(object value) SqlFunc.ToBool(object value)

截取字符串

SqlFunc.Substring(object value, int index, int length)

替换字符串

SqlFunc.Replace(object value, string oldChar, string newChar)

获取字符串长度

SqlFunc.Length(object value) { throw new NotImplementedException(); }

聚合函数

SqlFunc.AggregateSum<TResult>(TResult thisValue) SqlFunc.AggregateAvg<TResult>(TResult thisValue) SqlFunc.AggregateMin(TResult thisValue) SqlFunc.AggregateMax<TResult>(TResult thisValue) SqlFunc.AggregateCount<TResult>(TResult thisValue)

如果还有不支持的可以写字符串

db.Queryable<Student>().Where()

 

2.Updateable

updateable主要功能有批量更新、单条更新、指定更新列、排除更新列、根据拉姆达更新、根据实体更新等操作

根据实体更新(主键要有值,主键是更新条件)

var t1 = db.Updateable(updateObj).ExecuteCommand();

只更新实体里面的Name列(主键要有值,主键是更新条件)

var t3 = db.Updateable(updateObj).UpdateColumns(it => new { it.Name }).ExecuteCommand();

更新 Name和 TestId 以外的所有列 (主键要有值,主键是更新条件)

var t4 = db.Updateable(updateObj) .IgnoreColumns(it => new { it.Name, it.TestId }).ExecuteCommand();

更新NAME

var t5 = db.Updateable(updateObj) .IgnoreColumns(it => it==).With(SqlWith.UpdLock).ExecuteCommand();

使用锁

var t6 = db.Updateable(updateObj).With(SqlWith.UpdLock).ExecuteCommand();

批量更新(主键要有值,主键是更新条件)

List<Students> list=GetList(); var t7 = db.Updateable(list).ExecuteCommand();

实体更新,并且给指定列重新赋值

var t8 = db.Updateable(updateObj) .ReSetValue(it => it.Name == (it.Name + 1)).ExecuteCommand();

更新实体,更新条件是根据表达示

var t9 = db.Updateable(updateObj).Where(it => it.Id == 1).ExecuteCommand();

根据表达式中的列更新 ,指定列并赋值的更新,比较常用

var t10 = db.Updateable<Student>() .UpdateColumns(it => , CreateTime = DateTime.Now }) .Where(it => it.Id == 11).ExecuteCommand();

 

别名表

db.Updateable<School>().AS() .UpdateColumns(it => }) .Where(it => it.Id == 1).ExecuteCommand(); //Update Student set Where Id=1 是NULL的列不更新 db.Updateable(updateObj).Where(true).ExecuteCommand();

 

3.Insertable

Insertable主要功能有 批量插入、单条插入、指定插入列、排除插入列等功能

插入并返回受影响行数用ExecuteCommand

var t2 = db.Insertable(insertObj).ExecuteCommand();

插入并返回自增列用ExecuteReutrnIdentity

var t3 = db.Insertable(insertObj).ExecuteReutrnIdentity();

只插入列 Name和SchoolId

var t4 = db.Insertable(insertObj).InsertColumns(it => new { it.Name, it.SchoolId }).ExecuteReutrnIdentity();

不插入列 Name和TestId

var t5 = db.Insertable(insertObj).IgnoreColumns(it => new { it.Name, it.TestId }).ExecuteReutrnIdentity();

根据条件指定不插入列

|| it == ).ExecuteReutrnIdentity();

使用锁

var t8 = db.Insertable(insertObj).With(SqlWith.UpdLock).ExecuteCommand();

可以设置NULL列不插入和是否强制插入自增列

var t9 = db.Insertable(insertObj2) .Where(, ) .ExecuteCommand();

批量插入

var insertObjs = new List<Student>(); var s9 = db.Insertable(insertObjs.ToArray()).ExecuteCommand();

 

Deleteable

根据主键删除、单条删除、条件删除、表达式删除等功能

根据实体删除(实体内主键一定要有值)

var t0 = db.Deleteable<Student>().Where(new Student() { Id = 1 }).ExecuteCommand();

根据实体集删除

var t1 = db.Deleteable<Student>().Where(new List<Student>() { new Student() { Id = 1 } }).ExecuteCommand();

使用锁

var t2 = db.Deleteable<Student>().With(SqlWith.RowLock).ExecuteCommand();

根据主键删除

var t3 = db.Deleteable<Student>().In(1).ExecuteCommand();

根据主键批量删除

var t4 = db.Deleteable<Student>().In(new int[] { 1, 2 }).ExecuteCommand();

根据表达式删除

var t5 = db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();

 

其它功能的一些简介

因为功能太多九大功能只讲了4大功能的用法,其它功能我就简单描述一下

DbFirst:用于创建实体、支持模型自定义、可以生成全部表的实体、也可以指定表和支持生成属性和默认值

CodeFirst:支持通过类生成实体、主键、自增列、支持表的备份和字段名称的修改

Ado.Net: 支持SqlQuery<T> 一系列 原生SQL操作 支持事务、存储过程输出参数等功能

DbMaintenance:数据库的维护操作 支持表备份、库备份、添加表、添加列、获取表信息 、根据表获取主键等相关数据库层面的操作

EntityProvider:获取实体类的相关信息

 

另外支持了复杂模型的用法:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Asp.Net WebForm生命周期的详解 - 天使不哭

    Asp.Net WebForm生命周期的详解 - 天使不哭

    2017-06-15 09:00

  • 一个微服务框架的故事 - wc的一些事一些情

    一个微服务框架的故事 - wc的一些事一些情

    2017-06-14 10:04

  • 高性能迷你React框架anu在低版本IE的实践 - 司徒正美

    高性能迷你React框架anu在低版本IE的实践 - 司徒正美

    2017-06-14 09:01

  • 关于ASP.NET WebForm与ASP.NET MVC的比较 - 天使不哭

    关于ASP.NET WebForm与ASP.NET MVC的比较 - 天使不哭

    2017-06-09 09:02

网友点评
k