我正在开发一个应用程序,目前通过ADO.NET和硬编码的SQL语句查询(相当大)数据库。不可否认,这是丑陋的(即如果在SQL中出现错误,则不会抛出编译时错误)并且可能存在危险(由于SQL注入等,尽管这对于此特定应用程序不太可能存在问题),但最初并未考虑因为这个应用程序实际上只对这个数据库中的一小部分表感兴趣(至少现在......)。
LinqToSQL看起来很有意思,但因为这个应用程序也需要能够连接到Oracle数据库,所以该计划不是首发。
像我这样的项目是否适合与ORM框架集成,或者是否有点矫枉过正?
答案 0 :(得分:2)
我认为ORM应该始终至少被视为。
但这听起来并不像你甚至使用业务对象(有时称为数据访问层或DAL),这极大地破坏了面向对象语言的有用性。我先解决这个问题。如果你发现为业务对象创建所有CRUD太费时间了,那就是ORM的时候......
我个人最喜欢的是nHibernate。很大的学习曲线,但绝对值得。
答案 1 :(得分:1)
我建议使用生成的DAL而不是ORM或Linq。
研究亚音速http://subsonicproject.com/。它是一个开源的DAL生成器,非常易于学习和使用,并且开销非常低。
答案 2 :(得分:1)
我肯定会说它是ORM框架的候选者。一旦熟悉了框架,设置ORM的开销很小,而且好处很多。
正如您所说,如果您可能需要Oracle支持,LinqToSQL是不合适的,但大多数其他框架都支持Oracle。
如果您只使用表的一小部分,那么您只需要映射表的一小部分,因此设置成本将进一步降低。
祝你好运!答案 3 :(得分:0)
尝试使用生成sql的内容(如Linq,仅限Oracle),而不是orm。
为什么呢? Jeff Atwood explains.
引用:
“起初你就像是”哇!对象!“然后你意识到 - 嘿,这是很多繁琐,容易出错的映射代码,我之前没有写过......”