好的,我有一个我知道非常自以为是的问题(基于我读过的所有帖子),但我需要帮助。简而言之,过去几年我一直使用以下模型进行数据访问。
数据库 - > Sprocs-> XSD(类型化数据集,拖放sproc in.net) - >在DAL项目中,使函数调用XSD创建的方法,加载所有数据,然后映射到项目业务对象。
这个的优点:
1)轻松拖放以创建SQL调用
2)Sprocs几乎是由于其他限制因素而且很容易添加
3)Project使用适合解决方案而不是数据库的自有Business对象,我只是将它们映射到C#
4)代码映射,易于重构
5)谁不喜欢所有要输入和智能化的内容
缺点: 1)慢慢建立
2)缓慢提取数据(表适配器和数据集与datareader相比性能不佳)
3)涉及零值的Buggy。男孩可以把这个垃圾变成马车,这浪费了很多时间。
所以这就是我一直在做的而不是白痴,我意识到必须有更好的方法。所以我在上周看了NHiberabte,LINQ to SQL,Entity Framework,或者使用datareaders和无类型代码重新完成所有操作。
所以,问题是什么是一个好的数据库(可能是对象的sprocs)映射器。
我对3看过的想法:
1)Linq to SQL - 它唯一的SQL和微软已经说它是一种死技术,所以看起来毫无意义。
2)实体框架 - 我可能需要更多地接触这个,但似乎将这些东西映射到我自己的对象会让我回到原来的位置。
3)Nhibernate - 看起来很有前途,但是我讨厌编写XML文件而且我目前的项目有30到50个Business对象。另外,我必须在各个领域使用sprocs。
任何人的建议或关于良好ORM的教程的非常好的链接将不胜感激。对不起,这个问题太久了。 谢谢, 乔
答案 0 :(得分:1)
查看:www.summerofnhibernate.com以及关于SPROCS和来自Davy Brion的nHibernate的帖子:Sprocs and NHibernate
此外,您可以使用Fluent NHibernate来避免XML ...这真的不是那么糟糕。
答案 1 :(得分:1)
您可能需要考虑:
Fluent NHibernate - 它的NHibernate具有更清晰,更好的.NET接口,因此您不必编写尽可能多的XML等。
答案 2 :(得分:1)
关于编写xml文件,我非常确定有一些工具可以检查你的类并为你输出xml文件(你可能还需要调整它,但它比面对面更好:))。