本机查询和存储过程与ORM

时间:2011-10-19 22:20:12

标签: .net sql-server entity-framework linq-to-sql orm

随着LINQ to SQL和Entity Framework等ORM的普及,使我对使用本机查询和存储过程产生了疑问。

我很自然地面向SQL以及与RDBMS的直接联系。我喜欢对发生的事情的纯粹控制,我喜欢我的跟踪显示我在代码(存储过程等)中正在调用的内容。

但是我错过了ORM的收益是什么?这只是快速的发展过程吗?是否缺乏管理数据库和对象的必要性?

我没有使用EF和LINQ to SQL而错过了什么?

1 个答案:

答案 0 :(得分:1)

我认为这里最大的影响是生产力;使用EF(或任何其他ORM)构建简单的CRUD接口非常简单。但是当你不完全理解这种情况时,就会出现问题。

例如,假设一个大对象,有几个子集合; ORM有一个限制,了解如何集成数据,并且必须返回非规范化的数据以实现该对象。这可能会对数据传输产生巨大影响。

另一件事是关于表现。也许你会得到一个用户界面,它应该做很多计算,或者更新一个大对象及其依赖项。在这种情况下,我建议使用本机访问(存储过程等)来释放您的RDBMS的全部潜力。

总结:简单的接口,ORM;中到复杂的接口,存储过程。