处理oralce,sqlserver,access及其他常用数据库,下载和学习地址

1、web.config配置数据库连接字符串,以及数据库类型:
<connectionStrings>
<!--MySql-->
<add name="DosConn" providerName="Dos.ORM.MySql" connectionString="Data Source=127.0.0.1;Database=DBName;User Id=root;Password=root;" /> //未检验
<!--SqlServer-->
<add name="DosConn" providerName="Dos.ORM.SqlServer9" connectionString="server=127.0.0.1;database=DBName;uid=root;pwd=root;" /> //检验可以
<!--SqlServer-->

<add name="DosOracle" providerName="Dos.ORM.Oracle" connectionString="User ID=AQPU;Password=AQPU;Data Source=orcl;Max Pool Size=512"/>  //经检验可以
</connectionStrings>
组件读取connectionStrings节点的配置的时候会根据providerName来判断是哪种数据库。
  • Sql server 2000:Dos.ORM.SqlServer
  • Sql server 2005/2008及以上:Dos.ORM.SqlServer9
  • MS Access:Dos.ORM.MsAccess
  • Sqlite:Dos.ORM.Sqlite
  • Oracle:Dos.ORM.Oracle
  • MySql:Dos.ORM.MySql
2、全局声明
public class DB {     

  public static readonly DbSession Context = new DbSession("DosConn"); 
}
3、开始使用Dos.ORM
var list = DB.Context.From<Dos.Model.TableName>().ToList();

4、使用示例

全局配置:
public class DB
{
public static readonly DbSession Context = new DbSession("DosConn");
}
查询示例(Lambda表达式写法):
DB.Context.From<Dos.Model.TableName>()
.Select(d => new { d.ID, d.Price }) //select ID,Price from TableName
.Where(d => (d.ID == && d.Name != "itdos"
&& d.Name.In("com","net","cn") && )
|| d.Sex != null)
// where (id=2 and Name<>'itdos' and Name in('com','net','cn')) or Sex is not null
.GroupBy(d => new { d.Name, d.Sex }) //group by Name,Sex
.OrderBy(d => new { d.CreateTime, d.Name }) //order by CreateTime,Name
.Having(d => d.Name != '') //having Name<>''
.Top()
.Page(, ) //分页返回结果 每页10条返回第2页数据
.ToList(); //返回实体列表
//.ToFirst(); //返回第一个实体
//.ToFirstDefault(); //返回第一个实体,如果为null,则默认实例化一个
//.ToDataSet(); //返回DataSet
//.ToDataReader(); //返回IDataReader
//.ToDataTable(); //返回DataTable
//.ToScalar(); //返回单个值
插入示例:
//单个实体插入
var newModel = new Dos.Model.TableName(){
ID = Guid.NewGuid(),
Name = "ITdos.com"
};
var count1 = DB.Context.Insert<Dos.Model.TableName>(newModel);
//批量插入
var newList = new List<Dos.Model.TableName>();
newList.Add(new Dos.Model.TableName(){
ID = Guid.NewGuid(),
Name = "ITdos.com"
});
var count2 = DB.Context.Insert<Dos.Model.TableName>(newList);
删除示例:
var count1 = DB.Context.Delete<Dos.Model.TableName>(d => d.ID == );
修改示例:
var uptModel = DB.Context.From<Dos.Model.TableName>().Where(d => d.ID == ).ToFirst();
uptModel.Attach();
uptModel.Name = "ITdos.net";
var count1 = DB.Context.Update<Dos.Model.TableName>(uptModel);
 

dos.ORM配置和使用的更多相关文章

  1. ORM系列之一:Dos.ORM

    阅读目录 引言 1.为什么使用Dos.ORM 2.配置 3.开始使用 3.1. 物理表 3.2. 实体类 3.3. 使用方法 引言 Dos.ORM(原名Hxj.Data)于2009年发布,2015年正 ...

  2. dos.orm学习地址

    os.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内.Net用户量最多.最活跃.最完善的国产ORM.初期开发过程参考了NBear与MySo ...

  3. dos.orm

    引言: Dos.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大.最活跃.最完善的国产ORM.初期开发过程中参考了NBear与My ...

  4. Dos.ORM - 目录、介绍

    引言: Dos.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大.最活跃.最完善的国产ORM.初期开发过程中参考了NBear与My ...

  5. Dos.ORM使用教程

    Dos.C#.Net使用 Dos.ORM(原Hxj.Data)于2009年发布,并发布实体生成工具.在开发过程参考了多个ORM框架,特别是NBear,MySoft.EF.Dapper等.吸取了他们的一 ...

  6. Dos.ORM(原Hxj.Data)- 目录、介绍

    引言: Dos.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大.最活跃.最完善的国产ORM.初期开发过程中参考了NBear与My ...

  7. Dos.ORM Select查询 自定义列

    自定义列 .Select( p = >new{ test = p.id}) // 同sql 列名 as 新列名 如下是 自己在写代码的例子,查询,分页,where条件,排序 var where ...

  8. dos.orm的事务处理

    dos.orm也包含事务处理,没有太多封装,这里有几个简单的示例代码. using (DbTrans trans = DbSession.Default.BeginTransaction()) { D ...

  9. Dos.ORM logo.Net轻量级开源ORM框架 Dos.ORM

    http://www.oschina.net/p/dos-orm http://www.oschina.net/project/lang/194/csharp http://www.cnblogs.c ...

随机推荐

  1. [JLOI2015]管道连接(斯坦纳树)

    [Luogu3264] 原题解 多个频道,每个频道的关键点要求相互联通 详见代码,非常巧妙 #include<cstdio> #include<iostream> #inclu ...

  2. CF914E Palindromes in a Tree(点分治)

    题面 洛谷 CF 题解 题意:给你一颗 n 个顶点的树(连通无环图).顶点从 1 到 n 编号,并且每个顶点对应一个在'a'到't'的字母. 树上的一条路径是回文是指至少有一个对应字母的排列为回文. ...

  3. python 并发之多进程实现

    一.multipricessing模块的介绍 python中的多线程无法利用多核优势,如果想要充分的使用多核CPU资源,在python中大部分情况下需要用多线程,python提供了multiproce ...

  4. 116th LeetCode Weekly Contest Maximum Width Ramp

    Given an array A of integers, a ramp is a tuple (i, j) for which i < j and A[i] <= A[j].  The ...

  5. 计算机插U盘没用了

    今天遇到一个神奇的状况,我想把台机上面的文件通过U盘拷贝到我的笔记本上.文件拷到U盘上没问题,然后把U盘插到笔记本上,一点反应都没有.我想了下,这U盘肯定没坏.然后我笔记本又是新买没多久,一直爱护有加 ...

  6. Win10磁盘利用率高达100%设置修改方法

    Win10磁盘利用率高达100%设置修改方法 Windows Defender关闭 Win10的Windows Defender已经变身成为安全中心,它的运行机制改成了即便是电脑中存在多个杀毒.防护软 ...

  7. 基于云计算的IaaS、PaaS、SaaS三种服务模式的区别

    Infrastructure-as-a-Service(IaaS) - 基础即设施服务 基础设施主要包括网络系统(networking).存储设备(storage).服务器(servers).虚拟化技 ...

  8. Android: 通过Runtime.getRuntime().exec调用底层Linux下的程序或脚本

    Android Runtime使得直接调用底层Linux下的可执行程序或脚本成为可能 比如Linux下写个测试工具,直接编译后apk中通过Runtime来调用 或者写个脚本,apk中直接调用,省去中间 ...

  9. pinyin4j的基本使用

    PinYin4jUtils工具类代码:http://www.cnblogs.com/jepson6669/p/8856082.html maven中引入依赖 <!-- 引入pinyin4J的依赖 ...

  10. c#委托、泛型、反射的使用情况

    委托:当你传递的参数不是 变量 时,想把一个方法作为参数传递,此时委托就可以做到这点 泛型:当你传递的参数是一个类时,此时用泛型 反射:都说反射是一种耗时的操作,但是却很有用,所以反射他不是拿来滥用的 ...