Released version 0.2 at 2003.12.20
经过将近四天不分昼夜的奋战,终于按照几个热心朋友的建议,做了如下改进:
1. 添加一个用于存放数据库定义的Mindsware.Core.Db.DBContext类。
2. 按照AbstractFactory虚拟类工厂模式添加了一个Mindsware.Core.Db.DBFactory
类,用户按照不同的ProviderType采用Reflect方式,在runtime初始化各种
底层数据类的实例,而不是在Design time就引用诸如Oracle.DataAccess之类的
assembly。使用了IDBFactory接口,作为以后扩充对更多的Provider(例如
ODBC等)的支持时修改成更标准的AbstractFactory模式之用。
现在,无需引用Oracle.DataAccess的assembly即可编译和运行,如果要使用
OracleDataProvider,只需要按照示例项目中的web.config那样设置好到Oracle
数据库的连接定义,给出Oracle.DataAccess.dll的文件具体路径即可。
3. 修改了O-R Mapping层的所有对象,以适应这种变化,光这个花了我十多个小时
来修改和测试。
4. version 0.1中,当修改了Global类里边的缺省DBContext之后,必须重启整个IIS
以反映变化,现在不用了。修改Global.Application_Start事件处理方法里边
的缺省连接之后,重新编译即可生效。如果不显式设定用哪一个DBContext,那么
会用名为default的DBContext,这也是为什么<dbContexts>设置里边至少要有
一个<dbContext name="default">的原因了。
5. 不仅可以一次性的很方便的在Global类里边设置全局缺省DBContext,而且可以
单独为每一个DBObject的子类设置该子类所用的DBContext,也就是说,很容易在
同一个项目中的不同DBObject子类中使用不同的数据连接,只要这些数据连接的
数据库定义都在web.config文件中设置好就行。关于这个的用法,请参考
MindswareTest示例里边的MindswareTest.DataObjects.Items2类的构造函数。
6. 修改了web.config文件中数据库定义(<dbContexts>)的格式,并且写了一个
Mindsware.Core.Misc.ContextSectionHandler作为SectionHandler来处理这种自
定义配置文件格式。
7. 数据库登录密码不再以明文显示,而改用DES加密算法加密后存放在配置文件里边。
8. Bug fix: For OracleDataProvider, when try to insert or update a BLOB column
with a null uploaded file, a OCI Lob exception occurred.
9. Bug fix: In query datasheet, when sumbit a query with date conditions,
the result page displayed a "Bad date format" error and did not perform
the expected query.
Released version 0.1 at 2003.12.14
感谢SMTH dotnet版的nineteen版主和我的老朋友kangdh :)
到这里下载所有源码及示例:
http://www.cnb4c.com/Mindsware_DynamicDataObjects_v0.2.rar
论坛地址: