您好,我似乎是在ORM工具的十字路口,并希望得到一些面临类似挑战的人的建议。在过去,我一直在使用CodeSmith和NetTiers模板来生成我的DAL一切都很好,但是我已经决定放弃这个因为某种原因。
所以我处于十字路口,发现了以下内容: -
我已经拥有Codesmith并且不想购买任何其他内容,生成的代码必须在中等信任模式下工作...
可能还有其他我错过了。我正在寻找解释为什么ORM工具值得关注的答案。
谢谢理查德
答案 0 :(得分:2)
我在上一个项目中使用过.netTiers。但是在我正在努力的那一天,我们正在尝试Linq 2实体。你是对的Linq2EF不成熟。我们总是这样做,这就是我们使用T4模板生成EDMX文件代码的原因。我们还更改了这些模板,因此我们有Business Objects,用于注入的接口和DAL + DAO。我们很高兴现在的工作方式。好消息是我们可以使用LINQ对抗实体。
否则我也建议 Fluent nHibernate (link)给你。这是我们也考虑过的事情之一。但是你必须自己写很多东西。它不像你习惯在.netTiers中为你生成所有代码。
由于亚音速3 (link)只有一周大的时间,我建议您查看一下。基于我所看到的,它看起来非常有前景。它使用T4,因此您可以对其进行切片和切块以满足您的需求。
答案 1 :(得分:1)
我试了好几个星期,最后和NHibernate达成了协议。它很容易定制。有一个学习曲线,设置像linq到sql这样的东西要花一点时间,但这样做的好处是它看起来不像魔术。您将了解它是如何工作的,并且能够完全自定义它以满足您的需求。社区也很好,有很多可用的文档。在我看来,在现代ORM(无代码生成,可以使用POCO)和成熟度之间取得良好的平衡。
答案 2 :(得分:1)
您可以尝试使用DataObjects.NET。该ORM使用“代码优先”方法,支持DB模式升级和LINQ。请查看此简要说明http://www.x-tensive.com/Products/DO/。
答案 3 :(得分:0)
出于使用ORM的原因,这里有一个指向blog post by Glenn Block的链接。至于我的经验,就在一年多前,我正在寻找使用ORM而我选择了NHibernate。
坚持我是一个解决的问题,除了从我的域模型到我的关系数据的某种形式的映射之外,我不必再担心了。我查看了Linq To SQL,但它没有给我足够的控制权,如何将数据映射到我的对象,并且实体框架已经不足以满足我的喜好了。我团队中的一些主要项目正在使用NetTiers和CodeSmith,就像你说的那样,膨胀,代码生成(以及它的数量)使我感到有点质疑。最后,我选择了NHibernate,因为对我而言,它是最成熟的ORM之一,它提供的功能不仅支持细粒度的对象模型,而且它内置了查询工具,并且本质上解决了其他性能问题比如缓存。
是的,我承认学习曲线非常陡峭,但如果你投入时间,你将从中获得的好处是巨大的。 Ayende Rahien和Fabio Maulo的博客是有关NHibernate的信息的博客。 NHibernate通过这个LINQ provider提供了一些LINQ支持,但Steve Strong目前正在整合将在NHibernate中提供完整LINQ支持的功能。所以这一切都适用于NHibernate,但在一天结束时,这取决于你最满意的。
答案 4 :(得分:0)
我认为目前两个最有信誉和最强大的ORM工具是 nHibernate 和 LLBLGen Pro 。
nHibernate = 非常以域名为导向。
LLBLGen Pro = 面向数据驱动。
它们都非常出色,对于每个项目而言,根据它的性质,它可能更适合另一个项目。它还经常归结为个人选择和偏好,甚至是开发团队的文化。
就像我说的那样,总的来说,总的来说,他们都很优秀,而且他们都有轻微的优势/劣势。