Dos.ORM使用教程

Dos.C#.Net使用

  Dos.ORM(原Hxj.Data)于2009年发布,并发布实体生成工具。在开发过程参考了多个ORM框架,特别是NBear,MySoft、EF、Dapper等。吸取了他们的一些精华,加入自己的新思想。该组件已在上百个成熟企业项目中应用

为什么选择Dos.ORM(原Hxj.Data)?
  • 上手简单,0学习成本。使用方便,按照sql书写习惯编写C#.NET代码。功能强大
  • 高性能(与Dapper媲美,接近手写Sql)
  • 体积小(不到150kb,仅一个dll)
  • 完美支持Sql Server(2000至最新版),MySql,Oracle,Access,Sqlite等数据库
  • 支持大量Lambda表达式写法,国产ORM支持度最高,开源中国ORM排行前三
  • 不需要像NHibernate的XML配置,不需要像EF的各种数据库连接驱动
  • 众多成熟企业软件、互联网项目已应用此框架
  • 遵循MIT开源协议,除不允许改名,其它随意定制修改
  • Dos团队持续更新升级,任何Bug反馈都会立即得到解决

 

  首先·在 App.config文件中配置连接数据库字符串。或者在程序中指定

1     <connectionStrings>
2         <add name="School" connectionString="Data Source=.;Initial Catalog=School;User ID=sa;Pwd=123;"></add>
3     </connectionStrings>

然后,进行增删改操作。如下:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 using Hxj.Data;
  7 using Hxj.Data.Sqlite;
  8 using System.Data;
  9 
 10 namespace cn.School
 11 {
 12     class Test
 13     {
 14         static void Main(string[] args)
 15         {
 16 
 17             //    <connectionStrings>
 18             //<add name="School" connectionString="Data Source=.;Initial Catalog=School;User ID=sa;Pwd=123;"></add>
 19             //</connectionStrings>
 20 
 21             //不同的数据库可构造不同的DbSession    DbSession(connectionStrings节点的name)
 22             //DbSession dbs = new DbSession("School");
 23             DbSession dbs2 = new DbSession(DatabaseType.SqlServer, "Data Source=.;Initial Catalog=School;User ID=sa;Pwd=123;");
 24 
 25             //TestSelDB();
 26 
 27             //addTestDB();
 28 
 29             //Updata();
 30 
 31             //DelData();
 32 
 33             //sqlFrom();
 34 
 35             assistmethod();
 36         }
 37 
 38         /// <summary>
 39         /// 查询操作
 40         /// </summary>
 41         public static void TestSelDB()
 42         {
 43             //查询Student表中第一条数据并返回实体,代码如下。
 44             Student st = DbSession.Default.From<Student>()
 45                 //.Select(Products._.ProductID) //查询返回ProductID字段
 46                 //.GroupBy(Products._.CategoryID.GroupBy && Products._.ProductName.GroupBy)//按照CategoryID,ProductName分组
 47                 //.InnerJoin<Suppliers>(Suppliers._.SupplierID == Products._.SupplierID)//关联Suppliers表   --CrossJoin   FullJoin  LeftJoin  RightJoin 同理
 48                 //.OrderBy(Products._.ProductID.Asc)//按照ProductID正序排序
 49                 //.Where((Products._.ProductName.Contain("apple") && Products._.UnitPrice > 1) || Products._.CategoryID == 2)//设置条件ProductName包含”apple”并且UnitPrice>1  或者CategoryID =2
 50                 //.UnionAll(DbSession.Default.From<Products>().Select(Products._.ProductID))//union all查询
 51                 //.Distinct() // Distinct
 52                 //.Top(5)   //读取前5条
 53                 //.Page(10, 2)//分页返回结果 每页10条返回第2页数据
 54                 //.ToDataSet();   //返回DataSet
 55                 //.ToDataReader(); //返回IDataReader
 56                 //.ToDataTable(); //返回DataTable
 57                 //.ToScalar();  //返回单个值    
 58             .ToFirst();
 59 
 60             //分字段查询
 61             DbSession.Default.From<Student>()
 62                 .Select(Student._.Stu_ID, Student._.Stu_name)
 63                 .ToDataTable();
 64 
 65             //分字段查询取别名
 66             DbSession.Default.From<Student>()
 67                 .Select(Student._.Stu_ID, Student._.Stu_name.As("pname"))
 68                 .ToDataTable();
 69 
 70             //排序倒叙排列
 71             DataTable dt = DbSession.Default.From<Student>().OrderBy(Student._.Stu_ID.Desc).ToDataTable();
 72 
 73         }
 74 
 75         /// <summary>
 76         /// 模糊查询
 77         /// 子查询
 78         /// in 查询
 79         /// not iN查询
 80         /// </summary>
 81         public static void demoSelet()
 82         {
 83 
 84             //Contain完全模糊查询
 85             DbSession.Default.From<Student>().Where(Student._.Stu_ID.Contain(41500));
 86 
 87             //查找Stu_ID列中所有以41500开头的。
 88             DbSession.Default.From<Student>().Where(Student._.Stu_ID.BeginWith(41500));
 89 
 90             //查找Stu_ID列中所有以41500结尾的。
 91             DbSession.Default.From<Student>().Where(Student._.Stu_ID.EndWith(41500));
 92 
 93             //in 查询
 94             DbSession.Default.From<Student>()
 95                 .Where(Student._.Stu_ID.SelectIn(1, 2, 3))
 96                 .ToList();
 97 
 98             //not in查询
 99             DbSession.Default.From<Student>()
100                 .Where(Student._.Stu_ID.SelectNotIn<int>(1, 2, 3))
101                 .ToList();
102 
103             //子查询
104 
105             //SubQueryEqual                =
106             //SubQueryNotEqual            <>
107             //SubQueryLess                <
108             //SubQueryLessOrEqual        <=
109             //SubQueryGreater            >
110             //SubQueryGreaterOrEqual    >=
111             //SubQueryIn                in
112             
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值