你的位置:首页 > ASP.net教程

[ASP.net教程]开源数据引擎


  NetUML.DataEngine 数据引擎支持多数据库,数据访问引擎采用配置方式,类似ibatis.net底层原理,支持多数据库连接方式。将来可支持数据库读写分离,读写分离配置采用MVC路由机制。

  源码结构

  

一、配置介绍

  providers.config 配置文件名称,只需把它放在程序的根目录下即可。

 1  <provider name="oracleManagedDataAccess" 2   description="Oracle, Microsoft provider V1.0.5000.0" 3   enabled="true" 4   default="false" 5   assemblyName="Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" 
    connectionClass="Oracle.ManagedDataAccess.Client.OracleConnection" 6 commandClass="Oracle.ManagedDataAccess.Client.OracleCommand" 7 parameterClass="Oracle.ManagedDataAccess.Client.OracleParameter" 8 parameterDbTypeClass="Oracle.ManagedDataAccess.Client.OracleDbType" 9 parameterDbTypeProperty="OracleType"10 dataAdapterClass="Oracle.ManagedDataAccess.Client.OracleDataAdapter"11 commandBuilderClass="Oracle.ManagedDataAccess.Client.OracleCommandBuilder"12 usePositionalParameters="false"13 useParameterPrefixInSql="true"14 useParameterPrefixInParameter="false"15 parameterPrefix=":"16 allowMARS="false"17 />

   assemblyName:访问数据库的DLL程序集信息,此DLL文件也必须放在程序根目录下。

  App.Config 配置数据库连接字符串

<add providerName="oracleManagedDataAccess" name="oracle" 
connectionString="User ID=d;Password=d;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=ORCL)));"/>

  providerName:采用哪个配置信息访问数据库,这里采用oracleManagedDataAccess的配置。

二、初如化配置

  在程序启动的时候调用 NetUML.DataAccess.DbHelper.InitDBConfig();

三、使用介绍

  1、新建表“Class1”

 1 /** 创建表[Class1]  **/ 2 CREATE TABLE [dbo].[Class1]( 3 [ID] [int] IDENTITY (1, 1) NOT NULL , 4 [aa] [nvarchar](50) NULL , 5 [bb] [datetime] NULL , 6 [cc] [bit] NULL , 7 [ee] [int] NULL , 8 CONSTRAINT [PK_Class1] PRIMARY KEY  9 (10 [ID] ASC11 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]12 ) ON [PRIMARY]13 GO

 

  2、生成“ClassModel”

 1   ///<summary> 2   ///Class1 3   ///<summary>   4   [Table("Class1")] 5   public class ClassModel: NetUML.DataEngine.ActiveEntity 6   { 7      8     /// <summary> 9     /// [ID]10     /// </summary>11     [Key(KeyType.Indentity)]12     public int ID13     {14      get;set;15     }16     private string _aa;17     /// <summary>18     /// [aa]19     /// </summary>20     public string aa21     {22      set23      {24        if (_aa == value) return;25        OnChanged("aa", _aa, value);26        _aa = value;27      }28      get { return _aa;}29     }30     private DateTime? _bb;31     /// <summary>32     /// [bb]33     /// </summary>34     public DateTime? bb35     {36      set37      {38        if (_bb == value) return;39        OnChanged("bb", _bb, value);40        _bb = value;41      }42      get { return _bb;}43     }44     private bool? _cc;45     /// <summary>46     /// [cc]47     /// </summary>48     public bool? cc49     {50      set51      {52        if (_cc == value) return;53        OnChanged("cc", _cc, value);54        _cc = value;55      }56      get { return _cc;}57     }58     private int? _ee;59     /// <summary>60     /// [ee]61     /// </summary>62     public int? ee63     {64      set65      {66        if (_ee == value) return;67        OnChanged("ee", _ee, value);68        _ee = value;69      }70      get { return _ee;}71     }72   }

    新建表和生成Model代码都是用DataUML 软件生成的,如下图:

 

  添加、修改、删除数据操作

 1       //添加数据 2       ClassModel model = new ClassModel(); 3       model.aa = "ss"; 4       model.bb = DateTime.Now; 5       model.Save(); 6       //修改数据 7       ClassModel model = new ClassModel(); 8       model.ID = 1; 9       model.aa = "bb";10       model.Update();11       // 删除数据12       ClassModel model = new ClassModel();13       model.ID = 1;14       model.Delete();  

 四、多数据库连接

  app.config 数据库配置信息如下:

   <add providerName="oracleManagedDataAccess" name="oracle" connectionString="User ID=a;Password=a;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCL)));"/>  <add providerName="sqlServer2.0" name="sqlconnect1" connectionString="Data Source=192.168.0.1;Initial Catalog=t;User Id=sa;Password=sa" />  <add providerName="sqlServer2.0" name="sqlconnect2" connectionString="Data Source=192.168.0.1;Initial Catalog=t;User Id=sa;Password=sa" />  

  Model的信息如下。

 1   ///<summary> 2   ///采用“sqlconnect1” 这个数据库连接字条串进行读写数据   3   ///<summary>   4   [Table("Class1", ConnectionName = "sqlconnect1")] 5   public class ClassModel: NetUML.DataEngine.ActiveEntity 6   { 7     [Key(KeyType.Indentity)] 8     public int ID 9     {10      get;set;11     }    12   }

  当读写数据的时候,会采用

<add providerName="sqlServer2.0" name="sqlconnect1" connectionString="Data Source=192.168.0.1;Initial Catalog=t;User Id=sa;Password=sa" />

  这条数据库连接字符串。

五、后续更新介绍

  1、增加读写分离配置、多数据库操作配置,无需在类上面定义ConnectionName属性,采用配置方式进行设置
  2、增加面向对象的概念,类与类之间映射关系,以及级联操作
  3、增加更丰富的查询操作
  4、。。。。。。。。。。


源码下载




山东旅游地图线路大全山东旅游多少钱山东旅游攻略大全山东旅游攻略自助游山东旅游报价价格深圳野生动物园团购多少钱?深圳动物园团购价格? 深圳火车站到野生动物园有直达车吗?深圳火车站到动物园怎么坐车? 广州到深圳野生动物园自驾怎么走?广州到深圳动物园开车多长时间? 四月赏杜鹃 与大明山相约一场春天 2015珠海农科奇观花卉节什么时间?珠海农科奇观花卉节具体时间? 我在云南过春节 甩掉大鱼大肉来一场苹果盛宴 珠海农科奇观郁金香开了吗?2015珠海农科奇观郁金香开花时间? 2015珠海农科奇观郁金香花展时间?珠海农科奇观郁金香花展什么时候? 奥索卡邀你免费去阳朔脱单 武侯祠在什么地方,怎么去? 成都熊猫基地开放时间是什么时候? 游走大连寻找海上观赏日出的最佳地 港澳通行证如何续签?怎样续签港澳通行证? 去香港要签证吗? 去香港购物选购手机要注意什么? 怎样办理港澳通行证?办港澳通行证需要多少天?费用每人是多少? AQ12EA6R8CAJME\500 Datasheet AQ12EA6R8CAJME\500 Datasheet SQCAEA130FATWE Datasheet SQCAEA130FATWE Datasheet AQ12EA6R8JAJME Datasheet AQ12EA6R8JAJME Datasheet 无锡去香港旅游 无锡去香港旅游 无锡去香港旅游 辽宁去香港游 辽宁去香港游 辽宁去香港游 牡丹江去香港游 牡丹江去香港游 牡丹江去香港游