我为什么要打扰实体框架?

Lef*_*tyX 5 nhibernate entity-framework

可能重复:
实体框架4与NHibernate

我一直在尝试开发软件超过10年.
我主要使用MS技术,从VB3,COM +开始,然后是ASP.NET和ASP.NET MVC.
在这些年里,我使用了所有新的闪亮的MS技术来访问数据库.
我记得记录集,数据集,rds,ado,ado.net等等.每次我觉得它是最后一个,但每隔几年,再一次,试图学习一个本来会持久的新事物.几个月.现在我跳上了Nhibernate旅行车,我非常喜欢那个家伙.我想开始使用Entity Framework做一些事情,但我想我可以等下一个;-)你对此有什么看法?

Lad*_*nka 5

我和EF玩很多.我在爱好项目以及工作中的实际项目中使用它.我也在玩EF Code First,目前正在使用CTP(但很快就会发布).

我的看法:

当我比较.NET中直接可用的数据访问技术时EFv4是最好的.没有关于此的讨论 - 这是真的.它是MS的第一个工具,至少可以称为ORM.它允许您在实际和对象世界之间进行一些基本的映射,并简化了通过Linq到实体的数据访问.如果您遇到EF问题,您仍然可以退回并通过EF类调用直接SQL,这些类再次为您处理映射.如果你想了解更多,我们可以只讨论你感兴趣的功能 - 我不想在这里写一本书(更多的是已经存在的).

是的EF不是市场上最好的工具.它还很年轻,很多功能都缺失或没有按预期工作.可扩展性也是可怕的 - 当前版本的EF主要是单片黑盒子,没有可扩展点.拆卸EF组件表明它充满了内部密封的静态类.另一个问题是,EF的学习曲线要​​长得多,特别是如果您之前从未使用过ORM.

我开始学习NHibernate,我不得不说这个功能集非常棒,但我还没有在任何项目中使用它.另一个问题是,例如在我目前的工作中,我们不允许使用它(我即将离开).

选择取决于您,但至少知道可用工具的基础知识总是好的.