Git.Framework 框架随手记--ORM查询返回实体对象

简介:   使用ORM有一个优势,可以通过某种机制将数据库中的数据转化为自己想要的对象形式数据。本章记录一下如何使用Git.Framework返回实体对象     一. Git.Framework 中提供的方法     在Git.

  使用ORM有一个优势,可以通过某种机制将数据库中的数据转化为自己想要的对象形式数据。本章记录一下如何使用Git.Framework返回实体对象

 

  一. Git.Framework 中提供的方法

    在Git.Framework中有七个方法可以返回实体对象,先简答的看看这里的方法描述

(1) T GetSingle(int id);
(2) T GetSingle(object value);
(3) T GetSingle(T entity);
(4) V GetSingle<V>(T entity) where V : class, new();
(5) T GetSingle(int id, bool isOpenTrans);
(6) T GetSingle(T entity, bool isOpenTrans);
(7) V GetSingle<V>(T entity, bool isOpenTrans) where V : class, new();

    上面总共提供了七个方法用来查询一个实体对象,当然数据库中没有响应的记录则返回为null。

T GetSingle(int id);

    T 是使用的泛型,前面也介绍到了T使用泛型约束必须继承自BaseEntity。 实体中必须有和返回数据列相对应的列才可以获取其值. 如果数据库中表示使用自动标识列作为主键可以使用此方法来查询一个实体对象。

T GetSingle(object value);

    这个方法和上面的一样,感觉有点鸡肋,暂且不用过多的去考虑,这个方法就是根据主键来查询实体对象,不支持联合主键.

T GetSingle(T entity);

    这个方法比较智能一点,可以自定义返回列的数量以及查询的条件,应该属于适用最多的这种情况

V GetSingle<V>(T entity) where V : class, new();

    这个方法和上面一个其实是一样的,在前面提到过了T适用了泛型约束,而V在这里也是用了泛型约束是一个类,并且必须提供构造函数. T 实际上对应数据库中的一个表,而V不一定对应数据库中的表,其对象属性可以自定义的,只要数据库查询返回的列中存在于这个对象属性中,那么就可以将值付给它。

    至于后面一个方法完全是鸡肋,这里不用多说了。

 

  二. 查询方法案例

    函数1: T GetSingle(int id);

 

AdminEntity entity = this.Admin.GetSingle(1);

    上面的这段代码返回返回Admin表中主键为1 的这一行数据的所有值.

    函数2: T GetSingle(T entity)

AdminEntity entity = new AdminEntity();
entity.Include(a => new { a.ID, a.UserCode, a.UserName, a.PassWord, a.Email, a.Phone, a.Mobile, a.RealName, a.RoleNum, a.DepartNum });
entity.Where(a => a.UserCode == userCode);
entity = this.Admin.GetSingle(entity);
return entity;

    上面的代码看过前面几张的应该也见怪不怪了, 返回数据库表中的指定列,并且满足一定的要求,也就是筛选条件. 但是有时候筛选条件是返回多行数据的,这里只会读取第一行,其余行的数据不会做处理。

    函数3: V GetSingle<V>(T entity) where V : class, new();

AdminEntity entity = new AdminEntity();
entity.Include(a => new { a.ID, a.UserCode, a.UserName, a.PassWord, a.Email, a.Phone, a.Mobile, a.RealName, a.RoleNum, a.DepartNum });
entity.Where(a => a.UserCode == userCode);
            //entity = this.Admin.GetSingle(entity);
Git.Storage.Entity.Store.CustomerEntity cus = this.Admin.GetList<Git.Storage.Entity.Store.CustomerEntity>(entity);
return entity;

    在对象CustomerEntity中有表Admin相同字段的映射,我们查询的时候就不一定要使用返回AdminEntity,可以使用其他的对象来接收返回值数据。

 

  三. 返回数据行数

    在数据库中行使用到count() 行数,用于筛选数据有多少行,在Git.Framework中提供了几个函数专门来处理数据行的问题。

int GetCount();
int GetCount(bool isOpenTrans);
int GetCount(T entity);
int GetCount(T entity, bool isOpenTrans);

    int GetCount(); 用于该表中的所有数据行数.

    int GetCount(T entity); 这个函数用于返回特定的筛选条件的数据行数

    另外的两个函数是鸡肋,你可以不用理他们,留之无碍,舍之可惜。

AdminEntity entity = new AdminEntity();
int count = this.Admin.GetCount();

    上面代码是返回表Admin中的所有数据行数,没有数据返回0

AdminEntity entity = new AdminEntity();
int count = this.Admin.GetCount(entity);

    上面的代码没有使用任何条件,结果也是查询该表的所有的数据行

AdminEntity entity = new AdminEntity();
entity.Where(a => a.UserCode == userCode);
int count = this.Admin.GetCount(entity);

    这段代码和上面的是一样的,只是带了相应的条件而已,返回筛选的数据行

 

  四. 聚合函数

    聚合函数在SQL中是不得不说的,在Git.Framework 中提供了几个简单的几何函数方法映射

V Max<V>(T entity);
V Max<V>(T entity, bool isOpenTrans);
V Min<V>(T entity);
V Min<V>(T entity, bool isOpenTrans);
V Sum<V>(T entity);
V Sum<V>(T entity, bool isOpenTrans);

    聚合函数大家懂的,和上面的Count()使用的方法是一样,这个里面也提供了一些鸡肋的方法,索然无味!这里不贴使用实例了。

 

相关文章
|
5月前
|
存储 Unix 开发工具
15分钟了解Git对象和引用(2)
15分钟了解Git对象和引用
51 0
|
5月前
|
存储 算法 Unix
15分钟了解Git对象和引用(1)
15分钟了解Git对象和引用
85 0
|
3月前
|
存储 算法 开发工具
深入剖析Git对象底层原理
Git 在中间做了什么,它如何存储不同的文件和内容,以及如何区分不同分支下的文件版本呢?日常操作对这些自动的操作都是无感的。 但是如果哪天一旦上述操作中出现了错误,需要找回自己的代码时,如果不懂 Git 其内部存储原理,是没法找回的,因此为了避免这种情况,就有必要去了解其内部的存储——Git 对象的原理。
15 0
深入剖析Git对象底层原理
|
5月前
|
存储 运维 安全
15分钟了解Git对象和引用(3)
15分钟了解Git对象和引用
55 0
|
开发工具 git
Git - 查询远程地址
Git - 查询远程地址
72 0
|
开发工具 git
Git查询手册
Git查询手册
159 0
|
开发工具 git
【Git】Git 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )(二)
【Git】Git 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )(二)
119 0
【Git】Git 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )(二)
|
开发工具 git
【Git】Git 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )(一)
【Git】Git 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )(一)
180 0
【Git】Git 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )(一)
|
开发工具 git
【错误记录】Git 使用报错 ( git branch -a 仍能查询到已经删除的远程分支 )
【错误记录】Git 使用报错 ( git branch -a 仍能查询到已经删除的远程分支 )
272 0
【错误记录】Git 使用报错 ( git branch -a 仍能查询到已经删除的远程分支 )
|
开发工具 git
【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )(二)
【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )(二)
114 0
 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )(二)

相关实验场景

更多