• dos.ORM配置和使用


    处理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 == 2 && 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(5)
        .Page(10, 2)    //分页返回结果 每页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 == 1);
    修改示例:
    var uptModel = DB.Context.From<Dos.Model.TableName>().Where(d => d.ID == 1).ToFirst(); uptModel.Attach(); uptModel.Name = "ITdos.net"; var count1 = DB.Context.Update<Dos.Model.TableName>(uptModel);
     
    身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。
  • 相关阅读:
    在TextBrowser显示中,如何让最新的数据永远出现在第一行或者是在窗口的最后显示信息
    在Qtlabel中显示数字十六进制和十进制都可以
    实现 在子界面的button按下,在主界面的label显示。
    今天在Qt子界面中的Button,转到槽转不过去,报错Qt The class containing 'Ui::MainWindow' could not be found in...
    Qt串口接收使用多个LCD控件显示不同的数据
    Qt图标自定义
    Qt绘制动态曲线
    3.3.2Qt的按钮部件
    Mesh Profile (5)启动配置(配网)
    SiliconLabs EFR32BG 定时器输入捕获和脉宽调制
  • 原文地址:https://www.cnblogs.com/birdofparadise/p/7080472.html
Copyright © 2020-2023  润新知