数据访问组件的需求
这两天想了想还是先将自己需要的数据访问组件先编写出来,前面也看了些关于ORM与MS Framework 3.5中的ORM,但经过思考还是写一个自己的这样我自己认为比较好。
自己需要编写的话就必须先知道自己最后想要的是一个怎么样的结果,所以先在这里记录一下简单的需求:
DomainModel的Insert操作:这里的操作只是简单的向数据库中将DomainModel添加到数据库中,不考虑PrimaryKey的自动生成等,我的想法是通过这里自动生成一是代码实现不容易,两是如果是使用WCF,生成这个DomainModel的位置很可能是在Client端,并且考虑到以后用来处理的程序之间的集成方面的问题,这个PrimaryKey最大的可能是使用GUID,所以这里不考虑这个问题。
DomainModel的Delete操作:支持以PirmakyKey,DomainModel全匹配和指定条件进行删除。
DomainModel的Update操作:支持单个DomainModel按PrimaryKey更新,运行以DomainModel的全匹配更新,支持更新部分属性,支持按条件更新DomainModel。
DomainModel的Select操作:支持按PrimakyKey获取单个DomainModel,支持获取所有DomainModel,支持按条件获取单个DomainModel或DomainModel的集合,支持获取指定范围内的DomainModel。
多对多关系的处理:支持添加两个DomainModel的多对多关系,支持删除两个DomainModel之间的关系,支持检查两个DomainModel之间是否存在DomainModel关系,当然这里添加、删除、检查都是指两个DomainModel之间的PrimayKey进行检查。
这里的按条件是指:根据单个或多个DomainModel的属性,多对多关系中的外键等(暂时还没有想到其它的)。
这里还有一组非功能的需求:
支持与方便的采用SQL进行数据库的访问,支持多种形式的Table与DomainModel之间的映射方式(这里主要是想能够利用.NET Framework 3.5中的ORM的Attribute)。能够获取到由组件生成的SQL与外部代码添加SQL之间的邦定使用,如:通过数据访问组件生成SELECT 前面的语句,Where 后面的部分与编写时根据适当情况进行添加。
现在需要支持的我想大概就是这些,不做最好的组件,只做最需要的。如果那位朋友还有什么好的建议,请尽管提,这里有什么差的尽管批评指正。