Smark.Data一直强调以最简单和高效的方式访问数据库,在这个版本中组件引入了Query<T>对象,它是一个查询值描述对象,通过它可以更方便地进行数据查询并获取结果.组件会分析T的具体类型自动选择查询方式进行操作;在应用的时候可以直接通过Query<Employee> item=3;的方式直接得到查询数据.因此对使用者来说是一种全新方便灵活的数据库操作途径.

T类型和设置值分析

组件会把T类型分为三种类型,第一种是返回值类型或string,第二种是实体类型,第三种是实体列表IList<T>.组件会根据这几种类型会初始化不同加载器.T类型会根据设置的值选择执行的路径,因此不同类型设置不同值也需要注意,如果没有匹配那会导致运行错误并提示相关错误信息.

  • T是值类型或String

支持转换SQL或存储过程

  • T是实体类型

支持转换值类型,SQL,条件表达式或存储过程

  • T是列表类型

支持转换SQL,条件表达式或存储过程

测试应用用例

[TestMethod]public void Result_GetValue(){Query<Employee> query = 3;Console.WriteLine(query.Value.FirstName);}[TestMethod]public void Result_GetValue1(){Query<Employee> query = Employee.employeeID == 3;Console.WriteLine(query.Value.FirstName);}[TestMethod]public void Result_GetValue2(){Query<Employee> query = "employeeid=3";Console.WriteLine(query.Value.FirstName);}[TestMethod]public void Result_GetValue3(){Query<string> query = "select firstName from employees where employeeid=3";Console.WriteLine(query.Value);}[TestMethod]public void Result_GetValues1(){Query<List<Employee>> query = "";foreach (Employee item in query.Value){Console.WriteLine(item.FirstName);}}[TestMethod]public void Result_GetValues2(){//存储过程CustOrderHist coh = new CustOrderHist();coh.CustomerID = "ALFKI";Query<IList<OrderHist>> query = coh;foreach (OrderHist item in query.Value){Console.WriteLine(item.ProductName);}}

在1.8中Query<T>所担当的角色是比较重要的,它会自动分析类型和设置的值来进行相应的数据查询并返回值,从而使数据库操作变得更简和方便.不过前提是适应这种操作.

项目地址:http://smark.codeplex.com

相关资料:http://www.ikende.com/SmarkData.aspx

开源数据访问组件Smark.Data 1.8相关推荐

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

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

  2. 开源数据访问组件Smark.Data 1.7新增功能

    借助于扩展方法的功能,这一版本的改进可以让数据库操作变得更简单方便,在数据库操作相关会给你一种全新的体验.主要改进有以下几点: 条件表达式可以直接和string进行组合,从而更灵活地创建复杂的查询条件 ...

  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. python能绘制统计图吗-使用Python绘制图表大全总结
  2. Docker常用命令操作——1)、镜像操作;2)、容器操作
  3. php 接口继承,PHP面向对象之旅:接口的继承
  4. ROS学习笔记10(创建一个ROS消息和服务)
  5. git连接通过ssh连接github
  6. 2018--Linux面试题
  7. 高等数学问题的符号解
  8. 用Python和Pygame写游戏-从入门到精通(实战三:植物大战僵尸1)
  9. IPv4与IPv6地址转换
  10. [日更-2019.4.20、21] cm-14.1 Android系统启动过程分析(二)-Zygote进程启动过程
  11. 图形界面中消息盒子的使用
  12. 网易云短信php接口,网易云音乐简单API
  13. Python开发图形可视化界面程序(一)
  14. 1367 二叉树中的列表
  15. 用C语言读取.txt文本,并保存在二维数组中
  16. 网络舆情危及企业经营如何应对?舆情优化十大解决方案!
  17. 微信小程序中文本框添加空格
  18. Honor—Python note(2)——PyCharm创建新项目
  19. 南京邮电大学网络信息安全——网络数据包捕获WireShark(实验一)
  20. 养老金入市,千呼万唤始出来?

热门文章

  1. 门控循环单元网络GRU详解
  2. 使用vite搭建Vue3项目
  3. Unity中实时更新图片的方法探究
  4. 吉时利Keithley静电计6517B|6514上位机控制软件NS-EM
  5. 电子技术基础(三)__第5章 之逻辑函数相关的 最小项、卡诺图、逻辑图
  6. 【微语】第一周(2020.11.16~11.22)
  7. Git笔记-查看TortoiseGit小乌龟工具记录的账号密码
  8. 自动驾驶之眼 - C-V2X篇
  9. 使用Navicat连接阿里云ECS服务器上的MySQL数据库
  10. linux-lsmod、lspci命令释义