借助于扩展方法的功能,这一版本的改进可以让数据库操作变得更简单方便,在数据库操作相关会给你一种全新的体验.主要改进有以下几点:

  • 条件表达式可以直接和string进行组合,从而更灵活地创建复杂的查询条件
  • 扩展Load_方法,可以直接在值对象的基础上获取相关ID数据对象
  • 扩展一系的查询方法,可直接在string的sql上进行数据操作,包括查询获取查询对象数据.在操作过程完全不需要借助于其他对象来处理.
  • 扩展可以直接在存储过程对象进行执行操作

以上的一系列扩展都是直接能操作数据,而不再需引用相关条件对象或数据库上下文对象,让数据操作变得更简单灵活.

对象获取和保存

    var emp = 3.Load_<Employee>();emp.Notes += "_test";emp.Save_();

以上就是简单地根据ID值获取对象,修改并保存.由于扩展方法容易导致和其他方法冲突,所以在方法添加了_以便区分.

SQL执行

在原来的版本时处理一些SQL执行,必须借助于一些对象.就是必须创建一个SQL执行对象来处理SQL.但在1.7版中就不再需要这样做,直接在一个SQL的String基础上就能执行操作.

"delete * from employees".Execute();

以上是简单地执行一个delete的sql语,当然也可以执行一个查询并返回一个对象列表

    foreach (var item in "select * from employees".List<Employee>()){Console.WriteLine(item.FirstName);}

查询需要设置相关参数

    foreach (var order in "select * from orders where employeeid=@p1".Parameter("p1", 3).List<Order>()){Console.WriteLine("orderid:{0}\t orderdate:{1}", order.OrderID, order.OrderDate);}

存储过程执行

    CustOrderHist coh = new CustOrderHist();coh.CustomerID = "ALFKI";coh.ExecProc_();

只需要创建一个存储过程描述对象,设置好相关参数值就可以直接执行处理,当然也可以执行并返回一个查询结果.

    CustOrderHist coh = new CustOrderHist();coh.CustomerID = "ALFKI";foreach (var data in coh.ExecProcToObjects_<CustOrderHistData>()){Console.WriteLine("{0}\t{1}", data.ProductName, data.Total);}

对象条件和string描述的条件整合

在原有的条件表达式中处理复杂的SQL查询变得比较麻烦,实际情况下一些复杂的条件的确没有直接SQL来得直观,因此新版条件表达式可以直接和string描述的条件整合并产生新的表达式对象进行数据操作.

    Expression exp = new Expression();exp &=  Order.orderDate >= "1996-7-1";exp &= " employeeid in (select employeeid from employees where region=@p1)".Add("p1", "WA");foreach (var order in exp.List<Order>()){Console.WriteLine("orderid:{0}\t orderdate:{1}", order.OrderID, order.OrderDate);}

总结

以上几种操作的简化相信可以让你操作数据库变得更轻松和灵活.

组件官网:http://www.ikende.com/SmarkData.aspx

源代码网站:http://smark.codeplex.com/

开源数据访问组件Smark.Data 1.7新增功能相关推荐

  1. 开源数据访问组件Smark.Data 1.8入门编

    本章节主要讲述如何使用Smark.Data 1.8进行快速的数据库应用开发,主要内容包括配置,执行SQL和存储过程等基础的数据操作. 配置 在组件使用之前必须进行一个初始化配置,主要配置数据访问设备和 ...

  2. 开源数据访问组件Smark.Data 1.8

    Smark.Data一直强调以最简单和高效的方式访问数据库,在这个版本中组件引入了Query<T>对象,它是一个查询值描述对象,通过它可以更方便地进行数据查询并获取结果.组件会分析T的具体 ...

  3. 开源组件Smark.Data处理SQL和存储过程

    完全通过组件对象描述的方式来完成所有数据库操作是不太现实的事情,所以组件提供SQL和存储过程的执行支持.随着组件版本的不断完善在1.7后组件在使用SQL和存储也是一件极其方便的事情.其简洁的操作方式相 ...

  4. 测试 ClownFish、CYQ、Entity Framework、Moon、MySoft、NHibernate、PDF、XCode数据访问组件性能...

    下期预告: 由于很多园友反馈,有的组件不应该缺席.测试复杂度不够.测试还缺乏一定的公平. 因此考虑在下一个版本中,确保在更加公平的前提下进行更高复杂度的测试 . 同时将分为2组测试,纯SQL组件及纯O ...

  5. 转:Firebird 数据访问组件 (Delphi)

    转自:http://www.faceker.com/200809/firebird-data-access-components.html 在 Delphi 下可访问 Firebird 数据库的组件非 ...

  6. 测试 ClownFish、CYQ、Entity Framework、Moon、MySoft、NHibernate、PDF、XCode数据访问组件性能

    "啊!你在用ORM?会不会性能很差啊?" 用数字来说话,打破模糊的.传言的印象. 标题提到的组件"增删改查"都实现了测试代码,所以除了测试外,也可以把此项目作为 ...

  7. 微软提供的数据访问组件SqlHelper

    数据访问组件是一组通用的访问数据库的代码,在所有项目中都可以用,一般不需要修改.本节使用的是Microsoft提供的数据访问助手,其封装很严密,且应用简单. 首先要先添加一个类,并命名为SqlHelp ...

  8. bde怎么配置oracle数据库,Oracle数据访问组件ODAC教程:如何从BDE和DOA迁移

    ODAC(Oracle Data Access Components )是一个Oracle数据访问组件.ODAC可以为Oracle提供本地连接(Delphi, Delphi for .NET, C++ ...

  9. idata 数据访问组件库 (2021版)

    idata数据访问组件库(RX11)版本:  2022-09-20 下载: idata 数据组件库 for RAD Studio RX10.3.x (260) 发布于:2020-02-20    使用 ...

最新文章

  1. ssm上传文件获取路径_SSM文件上传
  2. Sublime优美设置(待续)
  3. springsecurity中session失效后怎样处理_结合Spring Security进行web应用会话安全管理
  4. 马云马斯克激辩:AI 是威胁还是被低估了?
  5. 《SolidWorks 2017中文版机械设计从入门到精通)》——2.7 复合草图实例操作
  6. 面向对象-类与对象、关键字、异常使用
  7. 斜齿轮重合度计算公式_齿轮强度校核及重合度计算(已优化)
  8. 【酸甜苦辣】记迭代一的酸甜苦辣(妍喆篇)
  9. PhpStudy在nginx下配置虚拟主机和伪静态
  10. LeetCode报错: “runtime error: member access within null pointer of type ‘struct ListNode”
  11. centos6.0 64位挂载ntfs分区
  12. JavaScript实现网页关灯效果
  13. 取款机中出现假币的分析
  14. Unity查找游戏对象及组件
  15. 浅谈Docker底层原理
  16. 微分方程近似解法归纳——差分解法
  17. 机器学习--线性回归
  18. 叶开|Token的10大设计模式及Token金融与治理(长篇干货)
  19. [转]神经机器翻译(NMT)相关资料整理
  20. 基于微信小程序的农产品电商平台精准营销模式创新研究

热门文章

  1. avogadro_Avogadro
  2. matlab非线性回归delta,讲解:Delta-sigma、Matlab、analog-to-digital、MatlabPython|SQ
  3. 移植 stm32f7_移植zephyrOS到正点原子apollo STM32F767上
  4. 创建java ee_eclipse Java EE安装和web项目的创建
  5. 设置input标签禁用_Vue造轮子 | input组件
  6. DjangoAPP子路由
  7. 前端HTML5CSS动画变形动画之过渡
  8. myeclipse10.1破解方法
  9. dos命令配置jdk环境
  10. android两个耳机能连两部手机吗,AirPods使用技巧:如何让耳机同时连接两台手机...