采取哪种DAL方法?

时间:2010-08-06 16:27:17

标签: c# sql-server-2005 orm subsonic

ActiveRecord通常限制太多。但是,就团队中每个成员在使用ORM方面所持的观点而言,我处境艰难。我们目前使用一个非常基本的ActiveRecord而后悔我说的主要是用一些基本代码编写。我想为我们构建一个新的DAL但是避免了ActiveRecord的限制,所以DDD更是如此。然而,我正在与之斗争的是(老skool开发人员和我自己很年轻):

团队首席开发人员

  • 赞成存储过程,但不一致......有些只是得到 表格,例如SELECT * FROM Company和一些得到SELECT C. *,O.OtherTableValue FROM Company C ...(非常令人沮丧)
  • 并不真正了解某些最新ORM工具的好处
  • 不会承诺任何工具,因为它“太严格”,如果有的话 问你做什么?

DBA

  • 不喜欢动态SQL
  • 不喜欢SELECT *

我并不是说上述情况不受限制,否则会更加令人信服。我相信我们可以通过使用ORM大大提高我们的效率,但很难说服他们。如果我能够证明这些领域的某些方面,我可能能够说服他们,即使是在他们不知情的情况下实施,然后看到好处。

您可以给我什么建议来帮助我的情况?我相信很多开发人员都会遇到这种情况,无法选择他们想要使用的架构。

3 个答案:

答案 0 :(得分:2)

我认为您的团队负责人需要承诺一致性或花一些时间在ORM研究项目上提出建议。换句话说,不一致和固定的团队负责人不应该担任该角色。

其次,出于多种原因,我倾向于同意您的DBA。只要他/她足够灵活,就知道动态SQL有时会更好地解决问题。

根据您的具体情况,我会要求您的DBA制定法律,每次都要使用存储过程,除非根据具体情况提供理由,并通过政策和监控来强制执行。这将解决一致性问题。也许那时候,有了这个政策,ORM看起来比将所有东西都手工编写为团队负责人更具吸引力。

答案 1 :(得分:1)

首席开发人员应该听取DBA的意见。 “SELECT *”很糟糕。从关于主要开发者的要点来看,这听起来像是一场熟悉的艰苦战斗。有时在这种情况下阻力最小的路径是使用ORM(例如NHibernate)实现某些东西,并为团队安排某种演示。

鼓励他们的投入,特别是来自首席开发人员和DBA以及任何其他nay-sayers。他们可能有合法的抱怨,当您了解更多有关它时,可以使用该工具实际解决这些抱怨。另一方面,他们可能只是因为没有正当理由而死定。如果是这样的话,最好找到它,因为它很可能意味着没有赢得这个反对他们的论点,因为他们并没有真正辩论。

答案 2 :(得分:1)

他们对使用ORM有何异议?如果他们不仅仅是顽固和顽固,那么如果你知道他们特别反对你并解决这些问题。和其他人一样,我认为你的DBA是正确的。但如果他担心从动态sql注入SQL,ORM会稍微缓解这个问题。选择*应该是开火的理由。

我想你应该只使用一些东西,LINQ-to-SQL或亚音速或nhibernate。使用ORM显示开发可以更快更清洁。