导航

目   录:Farseer.net轻量级ORM开源框架 目录

上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

前言

  在V1.0中,新增了存储过程的映射。在以往的版本中,操作存储过程的代码没有这么优雅,必须在每次操作的时候传入存储过程名称、in参数、out参数。

  在这个版本之后,存储过程也享受了映射带来的好处:

  1.   支持定义实体
  2.   实体中定义in参数、out参数
  3.   更易于维护(维护仅是针对实体结构)

  这是这个版本的一个小创新点。以往我们调用存储过程时,只能在逻辑段里手动写参数名称、存储过程名称。

  这给我们带来了维护灾难,同时最重要的是不支持硬编码方式也是很不优雅的。在新版中实现了这一支持。

存储过程上下文
    public class Proc : DbContext<Proc>
{
[Set(Name = "sp_Info_User")]
public ProcSet<InfoUserVO> InfoUser { get; set; } [Set(Name = "sp_Insert_User")]
public ProcSet<InsertUserVO> InsertUser { get; set; } [Set(Name = "sp_List_User")]
public ProcSet<ListUserVO> ListUser { get; set; } [Set(Name = "sp_Value_User")]
public ProcSet<ValueUserVO> ValueUser { get; set; }
}

  它的各个存储过程由ProcSet封装。针对数据库表提供的一系列执行的操作。被ProcSet包含的就是存储过程字段了。这里有点特殊的是,除了是查询的结果集的映射外,包含了参数传入的映射,并且区分in/out

VO实体类

存储过程实体类:

 public class InsertUserVO
{
/// <summary> 用户ID </summary>
[Field(IsOutParam = true)]
public int? ID { get; set; }
/// <summary> 用户名 </summary>
[Field(IsInParam = true)]
public string UserName { get; set; }
/// <summary> 密码 </summary>
[Field(IsInParam = true)]
public string PassWord { get; set; }
}

  存储过程与表、视图的区别比较大。在上面代码中,看到使用了IsOutParamIsInParam的特性。标记后,在执行存储过程时,会根据这些标记生成SQL参数化。传入到存储过程中。

  与此同时,如果该条存储过程执行后,会返回数据列表时,也会对应的返回当前这个实体列表。就根据我们对表进行查询时一样。

  通过存储过程的映射,我们不需要每次调用时手动指定他们了。让我们存储过程也能ORM了。

存储过程特性

  只有一个:FieldAttribute,它与表的特性是共同的。只不过它多了一些针对存储过程而设计的:

  我们先来看下面的表格:

序号 变量 注释 类型 适用范围 说明
1 Name 数据库字段名称 string 全部

指定表字段、视图字段名称、存储过程参数的名称、数据库函数

未显示指定时,默认使用当前的类属性名称作为缺省名称

2 IsOutParam 指示字段是否为存储过程中输出的参数 bool 存储过程

默认:false

设为:true 将作为SQL参数值传入,并配合Name声明参数名称,与InParam区别是Out在数据库存储过程中也要声明为该变量是out 即在存储过程中改变时,会将值返回来

3 IsInParam 指示字段是否为存储过程中输入的参数 bool 存储过程

默认:false

设为:true 将作为SQL参数值传入,并配合Name声明参数名称

  只是多了第2、3条属性说明(与TableSet、ViewSet的特性:FieldAttribute,是同一个)。

  通过设置它们,很容易让Farseer.Net哪些是参数及输入输出。

总结

  存储过程的映射非常简单,当然它的操作也是非常简单,在下一篇我们可以学习到它提供的4种方法用来操作。

  这篇就结束在这,总结,其实没什么好总结的了。

导航

目   录:Farseer.net轻量级ORM开源框架 目录

上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

广告时间

QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net

Farseer.Net是一款ORM框架 + 常用工具 + 扩展集合。

Farseer 寓意:先知、预言家 通常在某些场合时,提供计谋、策略。也希望该框架能给大家提供最大化的便捷。

ORM:其英文全称是:Object(对象) Relational(关系) Mapping(映射)

Farseer.Net的目标是:快速上手、快速开发、简单方便。

 Table.Data.User.Where(o=>o.ID == ).ToEntity();
Table.Data.User.Where(o=>o.ID > ).ToList();
Table.Data.User.Where(o=>o.ID != ).Delete();
Table.Data.User.Where(o=>o.ID != ).AddUp(o=>o.LoginCount, );
Table.Data.User.Where(o=>o.ID == ).Update(new User{ UserName = "newName" });
Table.Data.User.Insert(new User{ UserName = "newName" });

Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射的更多相关文章

  1. Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源 ...

  2. Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM ...

  3. Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作 下一篇:Farseer.net轻量级ORM开源框 ...

  4. Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件 下一篇:Farseer.net轻量级ORM开源 ...

  5. Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级ORM开源框 ...

  6. Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文 下一篇:Farseer.net轻量级ORM开源框 ...

  7. Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明 下一篇:Farseer.net轻量级ORM开源框架 ...

  8. Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次 ...

  9. Farseer.net轻量级ORM开源框架 V1.x 教程目录

    本篇教程将以Ver 1.x版本进行详细使用讲解 大家有任何疑问可以加入我们的官方QQ群进行讨论.QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net 整个 ...

随机推荐

  1. 2016/3/26 weixin 头像 昵称 网页优化显示 缺表中数据 只有代码 无显示效果

    weixin.php <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  2. /tmp/crontab.tDoyrp: 设备上没有空间 查看文件夹所在分区 磁盘剩余空间 15g的root-mail大文件

    问题诊断: 文件夹所在磁盘已满 问题确认: 查看文件夹所在磁盘剩余空间,找出空间被消耗的文件(集) 查看文件夹所在磁盘空间的所属文件(暂未解决) [root@hadoop1 /]# df -Bg /t ...

  3. ABAP doi 导出程序

    PERFORM FRM_OUTPUT_EXCEL_38 TABLES GT_RESULT USING 'ZHRPA038' LDF_PATH . FORM FRM_OUTPUT_EXCEL_38 TA ...

  4. mongodb10---分片

    分片:数据非常大,把不同段的数据拆了,1-1000000放在节点1,1000000-2000000放在节点2,200000-300000放在节点上.把不同的数据放在不同的服务器叫shard分片. 请求 ...

  5. Lightoj 1006 Hex-a-bonacci

    Given a code (not optimized), and necessary inputs, you have to find the output of the code for the ...

  6. bzoj1007 [HNOI2008]水平可见直线——单调栈

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1007 可以把直线按斜率从小到大排序,用单调栈维护,判断新直线与栈顶的交点和栈顶与它之前直线的 ...

  7. 小程序-demo:小程序示例-page/component

    ylbtech-小程序-demo:小程序示例-page/component 以下将展示小程序官方组件能力,组件样式仅供参考,开发者可根据自身需求自定义组件样式,具体属性参数详见小程序开发文档. 1. ...

  8. 使用Jquery动态加入对象的集合属性,提交集合属性到表单

    1.设置模型,引入构造函数,初始化集合 public class Person { public Person() //引入构造函数,初始化集合.如果未设置构造函数,集合会出现错误. { Skills ...

  9. Excel学习 -- 函数基础

    Excel函数基础 1. 单元格是函数的作用对象:    2. 函数由等号.函数表达式.操作符.参数.返回值五部分组成:    3. 商业智能报表中使用的常用函数分类:数学函数.文本函数.逻辑函数.查 ...

  10. P2479 [SDOI2010]捉迷藏

    传送门 KDtree是个吼东西啊-- 枚举每一个点,然后求出离他距离最远和最近的点的距离,更新答案 然而为什么感觉KDtree只是因为剪枝才能跑得动呢-- //minamoto #include< ...