zoukankan      html  css  js  c++  java
  • Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

    导航

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

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

    下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表/视图缓存操作 TableCahceSet、ViewCahceSet

    前言

      在上篇中,我们学会了存储过程的关系映射,其中知道了存储过程需要使用:ProcSet作为操作的上下文,以及在Field特性上,我们知道了新的两个属性用来存储过程的参数输入输出。

      在上篇末尾,提到了4个属性方法。这篇简单的讲解下。

    针对InsertUserVO,客户端调用的例子:
        var info = new InsertUserVO { UserName = "now111", PassWord = "old222" };
        Proc.Data.InsertUser.Execute(info);

      InsertUserProcSet<InsertUserVO>类型的属性,这在上一篇中,可以看到它的定义。

      从我们定义的实体中InsertUserVO,可以看到:UserName、PassWord是IsInParam = true的,也就是说他们是我们要传入的参数(存储过程)。而ID 是 out 参数

      所以在执行Execute后,会把UserName、PassWord生成SQL参数并执行到"sp_Insert_User"存储过程中的。同时设置了out 参数的ID,那么out参数会返回并赋值到ID属性中来。

    ProcSet提供的方法
            /// <summary>
            /// 返回查询的值
            /// </summary>
            /// <param name="entity">传入被设置好参数赋值的实体</param>
            /// <param name="t">失败时返回的值</param>
            public T GetValue<T>(TEntity entity = null, T t = default(T))
    
            /// <summary>
            /// 执行存储过程
            /// </summary>
            /// <param name="entity">传入被设置好参数赋值的实体</param>
            public void Execute(TEntity entity = null)
    
            /// <summary>
            /// 返回单条记录
            /// </summary>
            /// <param name="entity">传入被设置好参数赋值的实体</param>
            public TEntity ToEntity(TEntity entity = null)
    
            /// <summary>
            /// 返回多条记录
            /// </summary>
            /// <param name="entity">传入被设置好参数赋值的实体</param>
            public List<TEntity> ToList(TEntity entity = null)

      根据我们经常碰到的,专门提供了4种类型的存储过程执行:

    1. 返回查询的值(单值)
    2. 执行存储过程(不返回值,out仍然会返回并赋值)
    3. 返回单条记录
    4. 返回多条记录

      存储过程的操作非常简单。只需要在上面提供的4种方法之前,传入需要的参数类型的实体即可执行我们要的存储过程,这样便实现了我们说到的存储过程映射 了。

      博主就不一一对这4个方法进行调用说明了。

      至于选则哪种方法来执行,需要根据你的存储过程定义时,它执行完后返回的类型来自己选择。

      

      存储过程执行完后无返回(out参数不算),则调用:Execute

      如果返回列表、单值(单个字段)、单条记录,则找到对应的执行方法即可。

    总结

      其实,至少,Farseer.Net的大部份操作我们已经讲完了。通过学习到这里,你已经可以在实际的项目中进行使用了。

      往后的教程只不过是一些提供(可能你用不到)的功能而已。所以现在开始,赶紧下载它,应用到你的项目中来吧(以学习为目的)

      Farseer.Net 要做的出色,需要大家的努力,需要你的出谋策划,一旦接受,博主将会把它实现在在下个版中来。

      事实上现在里面的很多功能都是大家提出来的。在加以博主汗水而发布出来的。从中大家都可以学习到不同角度的知识。

      还等什么?赶紧加入我们吧:QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net

    导航

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

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

    下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表/视图缓存操作 TableCahceSet、ViewCahceSet

    广告时间

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

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

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

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

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

    1 Table.Data.User.Where(o=>o.ID == 1).ToEntity();
    2 Table.Data.User.Where(o=>o.ID > 1).ToList();
    3 Table.Data.User.Where(o=>o.ID != 0).Delete();
    4 Table.Data.User.Where(o=>o.ID != 0).AddUp(o=>o.LoginCount, 1);
    5 Table.Data.User.Where(o=>o.ID == 1).Update(new User{ UserName = "newName" });
    6 Table.Data.User.Insert(new User{ UserName = "newName" });
  • 相关阅读:
    Chaikin Curves in Processing
    finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?
    System.gc()和Runtime.gc()的区别?
    GC原理---对象可达判断
    java十题
    在 Queue 中 poll()和 remove()有什么区别?
    ArrayList和LinkedList的区别
    HashSet的实现原理
    Java中HashMap和TreeMap的区别
    List、Map、Set之间的联系与区别:
  • 原文地址:https://www.cnblogs.com/steden/p/4555273.html
Copyright © 2011-2022 走看看