将数据库中的表定义为一种特殊的实体类,再用Broker中的静态方法去做相应的操作,包括插入删除和返回结果集之类的。
查询可以不用通过SQL语句,通过Key那个类来生成筛选条件,还有能生成模糊查询的Sql语句的类,给查询提供了多种接口,这点比较方便,实用。
发现了它提供的CodeSmith模板中有点小错误,在它生成的类中构造函数中有点问题。在给每个属性赋值的时候,属性字段中掉了VariablePreChar。直接拿来编译是编不过的。
还有一些疑问:
1、在定义了主键,特别是自动增长的字段为主键的时候,为什么构造函数中还会有那个字段?而且是不管我给那个主键字段设置任何值,他基本上都不会用的,主键字段的值就是数据库中自动增长的数字。自己设置主键字段的值是无效的。
2、不知道是我没找到还是他没有,我不知道怎么使用将一个数据集写入数据库中,如果用循环遍历的话我怕慢,我觉得一个数据集要想往数据库中写的话最终的操作应该也是循环便利一下,然后一条记录一条记录的往数据库中写入。就是不知道这个框架有没有提供更好一点的写数据集的方法。
3、由于在Gentle.config中只把我们要用一个Provider给放开了,难道在一个应用中只能设计到一种数据库吗?想要用Gentle.Net,去操作2个数据库中的表进行数据的交换,简单点说就是要从一个库中取数据写到另一种数据库中的表中,他能不能做到?需要怎么配置?
4、针对大量数据的操作,有没有做什么优化?像返回IList,如果我返回的有上万条记录,然后再对那些记录进行操作的时候会不会由于太占有内存,由于记录太多影响效率?
5、为什么他提供的2个模板,MyGeneration和CodeSmith的模板生成的类有区别啊?主体结构上面差别不大。就是MyGeneration的类生成的方法多一些。怎么没在CodeSmith中也加入一点咧?发现二个生成代码的相比较的话我觉得还是CodeSmith比较好用一点。MyGeneration弄好几个文件出来,还没弄清楚它的结构啊。有时间去看看去。
对于CodeSmith生成的类,为了方便起见,最好是在里面添加一些静态的方法,包括取对象,取结果集和删除对象。要适当改造已达到更高的效率。