当前位置: 首页 > news >正文

持久数据层框架设计(二)

在很久之前发布了一篇《持久数据层框架设计(一)》后,有不少人关注,如今,总算Release一个稍微完整的测试版出来,提供DLL,并附配置说明。欢迎体验并提出宝贵的建议。

下面将配置文件以例子形式整理如下:

1. 在App.config或Web.config里配置

< configSections >
    
< section  name ="Data"  type ="Zivsoft.Data.ConfigHandler,Zivsoft.Data,Version=3.5.3295.29087,Culture=neutral, PublicKeyToken=3266f10ce3531d0e" />
</ configSections >
< Data  DbType ="SQLServer" >
    
< Access  type ="Zivsoft.Data.Access.AccessDbOperator;Zivsoft.Data.Access,Version=3.5.3295.29087,Culture=neutral, PublicKeyToken=3266f10ce3531d0e" >
      
< add  key ="ConnectionString"  value ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=~\Db\SOAWeb.mdb" />
      
< add  key ="AutoCreateTable"  value ="false" />
      
< add  key ="AutoCreateDb"  value ="true" />
    
</ Access >
    
< SQLServer  type ="Zivsoft.Data.SQLServer.SqlServerDbOperator;Zivsoft.Data.SQLServer,Version=1.0.3295.29087,Culture=neutral, PublicKeyToken=3266f10ce3531d0e" >
      
< add  key ="ConnectionString"  value ="Data Source=Lihua-PC\SQLEXPRESS;Initial Catalog=Sample;Integrated Security=True;Pooling=False" />
      
< add  key ="AutoCreateTable"  value ="true" />
      
< add  key ="AutoCreateDb"  value ="true" />
    
</ SQLServer >
    
< MySQL  type ="Zivsoft.Data.MySQL.MYSqlDbOperator;Zivsoft.Data.MYSQL,Version=1.0.3295.29087,Culture=neutral, PublicKeyToken=3266f10ce3531d0e" >
      
< add  key ="ConnectionString"  value ="……" />
      
< add  key ="AutoCreateTable"  value ="true" />
      
< add  key ="AutoCreateDb"  value ="false" />
    
</ MySQL >
</ Data >

 

2. 单独文件中配置

如果在单独文件配置,你需要一个新建Data.xml文件在当前目录,或在App_Data目录里。格式如下:

<? xml version="1.0" encoding="utf-8"  ?>
< Config >  
  
<!-- my area -->
  
< Data  DbType ="Access" >
    
< Access  type ="Zivsoft.Data.Access.AccessDbOperator;Zivsoft.Data.Access,Version=1.0.3295.29087,Culture=neutral, PublicKeyToken=3266f10ce3531d0e" >
      
< add  key ="ConnectionString"  value ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Db\SOAWeb.mdb" />
      
< add  key ="AutoCreateTable"  value ="false" />
      
< add  key ="AutoCreateDb"  value ="true" />
    
</ Access >
    
< SQLServer  type ="Zivsoft.Data.SQLServer.SqlServerDbOperator;Zivsoft.Data.SQLServer,Version=1.0.3295.29087,Culture=neutral, PublicKeyToken=3266f10ce3531d0e" >
      
< add  key ="ConnectionString"  value ="Data Source=Lihua-PC\SQLEXPRESS;Initial Catalog=Sample;Integrated Security=True;Pooling=False" />
      
< add  key ="AutoCreateTable"  value ="true" />
      
< add  key ="AutoCreateDb"  value ="true" />
    
</ SQLServer >
  
</ Data >
  
< Localization  loc ="en-us" >
    
< en-us > App_Data\Localization\ResourceEn.xml </ en-us >
    
< zh-cn > App_Data\Localization\ResourceCn.xml </ zh-cn >
    
< zh-tw > App_Data\Localization\ResourceTw.xml </ zh-tw >
    
< jp-wh > App_Data\Localization\ResourceJp.xml </ jp-wh >
    
< ko-kr > App_Data\Localization\ResourceKo.xml </ ko-kr >
    
< es-mx > App_Data\Localization\ResourceEs.xml </ es-mx >
  
</ Localization >
  
< Log  level ="DEBUG" >
    
< LogFile > App_Data\log.log </ LogFile >
  
</ Log >
</ Config >

 

3. 配置主要以上两大类。另外需要提一下GAC。

由于程序集都是强命名,你可以将DLL都丢到GAC里面,但注意配置里必须指定完整的信息如下:

< Access  type ="Zivsoft.Data.Access.AccessDbOperator;Zivsoft.Data.Access,Version=1.0.3295.29087,Culture=neutral, PublicKeyToken=3266f10ce3531d0e" >

 

如果不需要扔到GAC里,配置可以简化如下:

< Access  type ="Zivsoft.Data.Access.AccessDbOperator;Zivsoft.Data.Access" >

 

4. 关于扩展。

由于程序集中Zivsoft.Data.dll含有所有数据操作、ORM等等接口,你可以继承IDbOperator来扩展对其它数据库的支持,如DB2, MySQL, Oracle等。目前我只做了常用的SQLServer和Access。

5. 如何自动生成实体Entity。

程序包里有一个Zivsoft.Data.ORM.Setup.dll,你可以执行里面的接口,指定数据库,自动生成zivsoft.Data.ORM.Entity.dll。

 

至于细节的实体类(Entity)的如何调用,外键关联等,在这篇不多写了,大家先自己摸索,与所有ORM大同小异,我有空再来完善这篇随笔,希望长期关注,多提建议。哈哈!

相关文章:

  • 《编译原理实践与指导教程》——第1章 词法分析与语法分析
  • gtest中如何跳出当前测试案例
  • linux-image-2.6.27-7-generic_2.6.27-7.16_i386.deb 无法安装
  • 安防设备:传统与智能差异在何处?
  • 微软确认Windows 7可降级至XP
  • 一键获取软硬件配置及管理员组
  • AMD发布第七代Pro A系列APU:面向企业
  • 草食系的“恋爱秘方”
  • 体验SCCM 2007 R2新特性-Reporting Services 报表订阅
  • 美国司法部:苹果三星专利侵权案应发回重申
  • windows编程入门之结构
  • 外媒称黑石集团或10亿美元出售文思海辉
  • SQL Server 2008下载 序列号
  • springboot国际化(i18n)
  • 域环境安装企业根CA
  • chrome扩展demo1-小时钟
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • java正则表式的使用
  • k个最大的数及变种小结
  • PHP 7 修改了什么呢 -- 2
  • Redis在Web项目中的应用与实践
  • underscore源码剖析之整体架构
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 技术:超级实用的电脑小技巧
  • 嵌入式文件系统
  • 微信小程序填坑清单
  • 译自由幺半群
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #pragma multi_compile #pragma shader_feature
  • #数学建模# 线性规划问题的Matlab求解
  • $.ajax()
  • $GOPATH/go.mod exists but should not goland
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (南京观海微电子)——I3C协议介绍
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .skip() 和 .only() 的使用
  • /var/lib/dpkg/lock 锁定问题
  • @Import注解详解
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [17]JAVAEE-HTTP协议
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [CareerCup] 14.5 Object Reflection 对象反射
  • [CSS]文字旁边的竖线以及布局知识
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [IE 技巧] 显示/隐藏IE 的菜单/工具栏
  • [J2ME]如何替换Google Map静态地图自带的Marker
  • [java基础揉碎]关系运算符(比较运算符)逻辑运算符赋值运算符三元运算符运算符的优先级
  • [Linux] day07——查看及过滤文本
  • [respberry pi3][suse] 配置docker