我认为没有必要做一层,这样做将性能减少很多。特别是数据库的性能少了很多。请高手发言!
解决方案 »
- C比C#快在哪里? 运算更快 还是操作内存和文件更快?
- 用C#做一个ASP.NET的一个入侵防御系统
- 下面关于类的访问修饰符的代码片段是否正确?请说明原因。
- 关于C#下加载ContourOCX控件的问题
- 如何用命令行调试c#程序,在DOS下面
- 多个类对共有变量的访问实现
- 很易得分的??谢
- 求助!如何解決一個AP程式第二次打開會嚗錯.錯誤信息:abnormal program termination
- 小弟想制作一个简单的网页编辑器,请问高手请进,高分球节,回答有分
- 请教XtraGrid的GridView现有的数据怎么读回DateSet
- 请问C#有没有现成的O/R映射框架?
- 真的没有人用C#做sybase12.52的开发么?
O/R层通常会牺牲掉许多的数据库性能优势。
第一,统计报表的问题。由于不直接和数据库打交道,所以产生针对持久层的查询语言。J2EE已经有规范出来,nhibernate已经很完善。可是我觉得这是一个退步。增加了使用持久层的学习成本,以及开发的复杂性。另外,ReportingService这样的好东西,根本就只要数据,而不管你的对象和逻辑,如果要使用这个手段,持久层在这个体系统就形同虚设。
第二,持久层多数情况下只是完成了对象到数据库的映射问题。它尤其违反了一个原则:让数据库做数据库擅长的事情。楼主谈到的性能问题也是这么来的,O/R层只是一个数据存储翻译的问题,没能充分利用数据库系统的特性。
nhibernate我没有仔细的研究,但是我发现nhibernate不能在我想新一个字段后,它不用编译程序就
可以进行数据处理了?,不知我的说法对不对。而我想找到这种orm,高手们有什么好的见意?
小系统没必要搞ORM,否则只会使系统变慢。
国外的ORM做得不错的有好些,如:nhibernate,
国内也有人在写啊,如听棠不就写了SPL,没有做关系的映射,使用起来也挺方便的。