持久數據層框架設計(二)
在很久之前發布了一篇《持久數據層框架設計(一)》后,有不少人關注,如今,總算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>
<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>
<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大同小異,我有空再來完善這篇隨筆,希望長期關注,多提建議。哈哈!
浙公網安備 33010602011771號