![]() |
1
2
使用EF4可以帮助您 很多 人工编码或代码生成。这似乎证明了使用它的合理性——最好的代码和唯一保证没有错误的代码是您不需要编写的代码。 EF4和NHibernate等是非常强大的工具,可以处理最苛刻和最复杂的业务需求——比如数据库表中的继承等等。不过,它们确实增加了一些开销——而且它们并不总是容易学习和学习的。 所以我的问题是:为什么不使用 LINQtoSQL ?如果您只需要SQL Server作为后端,那么如果您的映射几乎总是域模型中表和类之间的1:1映射,那么这可能比使用EF4或NHibernate容易得多。 LINQtoSQL肯定比EF4更容易、更快——它只是数据库顶部的一个非常薄的层。它比学习nhibernate容易得多——学习它不需要混乱的映射语法,您可以通过可视化设计器获得支持。它非常简单,您甚至可以进入其中并使用T4模板(参见Damien Guard的 Linq-to-SQL templates ) 即使在.NET 4/Vs2010中,linq-to-sql也得到了100%的支持,所以很有可能它仍然在VS2012中出现(或者下一个将被称为什么)。所以所有关于世界末日的预言都被夸大了——我一秒钟也不担心它的未来证明。 更新: linq to sql和ef之间的一些性能比较:
一般来说,linq-to-sql在查询性能上似乎有优势,但ef在更新方面似乎做得更好。 |
![]() |
2
1
从存储过程绑定的DAL是正常的这一点上,您可以从何处得到这种想法?我个人像15年前那样对他们说了再见,然后对市场上任何ORM这样的系统说了再见(hing:实体框架相对于NHibernate这样的东西来说是不好的)。我个人总是非常有趣,除了“粉丝”女士之外,其他人都是新的。 即使考虑到实体框架的局限性,它也远远优于您可以手动使用存储过程所能想到的任何东西。 1:通常大约40%到60%的代码处理数据库交互。这可以通过任何一个非愚蠢的ORM来消除--进行数学运算。 2:见1。 3:好问题。可悲的是,微软在数据访问领域做了非常愚蠢的事情。 4:很可能和你的手写的一样——在5%以内。遗憾的是,您的贫血ORM(实体框架)没有实现任何真正有趣的功能(缓存等),因此Hugh的收益不是自动实现的。 |
![]() |
slik · iOS数据访问层和数据访问层的神奇记录处理 11 年前 |
![]() |
RacerNerd · 如何在DNN 7+中使用DAL2复合密钥? 11 年前 |
|
sakir · 为什么我们要在解决方案中添加解决方案文件夹和责任共享测试文件夹 11 年前 |
![]() |
ZedBee · 把一个软件分成多个模块,每个模块都有自己的数据库,这样更好吗 12 年前 |