随着越来越多的 ORM 框架出现,DataBaseHelper 也添加了相应的 ORM 函数支持,使用 ORM 框架的好处就是可以减少手写增删改查 SQL 语句的出错概率。
项目地址:
https://gitee.com/snipen/Helper.Core.Library/blob/master/DataBaseHelper.cs
以用户表为例,用户表的实体结构模型如下:
[DataBaseT("T_User")] //数据库表结构
public class DTUserModel
{
[DataBaseIncrementT] // 自增字段
public int IdentityID { get; set; }
public string UserCode { get; set; }
public string NickName { get; set; }
public string UserPassword { get; set; }
public int DeleteStatus { get; set; }
}
数据增加
new DataBaseHelper<DTUserModel>()
.Insert(p=>new
{
p.UserCode,
p.NickName,
p.UserPassword
}).Execute(new DTUserModel() { });
数据编辑
new DataBaseHelper<DTUserModel>()
.Update(p=>new
{
p.UserCode,
p.NickName,
p.UserPassword
}).Execute(new DTUserModel() { IdentityID = 1 });
数据删除
new DataBaseHelper<DTUserModel>()
.Delete().Execute(new { IdentityID = 1 });
数据查询
new DataBaseHelper<DTUserModel>()
.Select(p => new
{
p.IdentityID,
p.UserCode,
p.NickName,
})
.ToSingle(new { IdentityID = 1 });
其他支持函数如下:
Limit:查询前 N 条数据
OrderBy:排序
OrderByDesc:排序,倒序
Where:条件语句
ToList:返回列表,如果 isRandom 为 true,随机返回数据
Increment:返回插入数据之后的自增编号
First:返回首行首列
Exists:根据条件查询是否存在某条数据
ToPaginationList:分页
Exclude:更新和插入时排除某些字段
LeftJoin:左连接
InnerJoin:内连接
RightJoin:右连接
补充说明:
Select(p => new { UserID = p.IdentityID }),会生成 select IdentityID as UserID 语句,Update(p => new { UserID = p.IdentityID }),会生成 update ... set IdentityID=@UserID 语句,当 Where 条件中有或语句时,需要添加 (),否则生成的 SQL 语句括号位置会不正确。