架构人生

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

在很久之前发布了一篇《持久数据层框架设计(一)》后,有不少人关注,如今,总算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大同小异,我有空再来完善这篇随笔,希望长期关注,多提建议。哈哈!

posted on   智艾悦  阅读(1425)  评论(1编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
< 2009年4月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

导航

统计

点击右上角即可分享
微信分享提示