园子里时常看见有人发布自己的ORM,其实都只是利用反射实现了自动化的Typed DataSet,只不过是POCO的(当然,DataSet的便利也没有了)。
一个完整的ORM没这么容易做出来,做好就更难了。随便举了几个ORM必须考虑的问题:
一级缓存有没有?
是否能够挂接第三方的二级缓存?
懒加载如何实现?
多对多如何表达?
三种继承如何做到?
框架对并发如何处理?
对Linq的支持程度?
能够使用视图和存储过程吗?
能够无缝迁移到不同的数据库吗?