2012-07-14 56 views
2

我是新来的实体框架,当然,我已经发现几个关于SOF的问题与目标用例有关。什么时候应该使用实体框架?

让我给你一些信息。我没有处理不同的数据库供应商或不同的数据库;一个且只有一个,SQL Server 2008和数据库少于30个表。我是否真的需要重做一些东西并使用Entity Framework?

编辑:

感谢詹姆斯解决我的问题。所以我假设使用EF加起来的开销,并做了一些工作,我不会知道的背景。这是MS的工作风格,所以我想我的下一个问题是:

  1. 它也会影响性能吗?

  2. 它支持hierarchyid数据类型吗?

+0

_redo things_我们怎样才能知道,如果我们不知道是什么_do_是或你打算做什么? – 2012-07-14 21:55:36

回答

4

其 最重要的功能如下:

  • 默认情况下,它会自动从模型生成的类和 随时动态更新这些类模型的变化。

  • 它负责所有的数据库连接,因此 开发人员不需要为与数据库交互的大量代码编写 。

  • 它提供查询模型的常用查询语法,而不是数据库的 ,然后将这些查询转换为数据库可以理解的查询。

  • 它提供了一种跟踪对模型对象 进行更改的机制,因为它们在应用程序中使用,并处理数据库的更新 。

+0

感谢您的简单解释:-) – Sha 2012-10-01 23:07:15

5

的主要原因是使用实体框架(或任何其他对象 - 关系映射器等的LINQ to SQL,NHibernate的等等),就是以简化应用程序的数据访问。借助EF,您只需将新值分配给.NET对象,即可获得通过LINQ查询和简单更新的功能,而无需自己编写任何SQL代码。

个人而言,我使用EF Code First和EF Migrations进行绿色领域开发,并在我有现有数据库的情况下使用LINQ to SQL。

+0

+1用于突出显示绿地和现有代码之间的差异。如果你想引入一个现有的代码库的理智,不要为了EF而连根拔起。使用LINQ to SQL。 – 2012-07-14 19:38:25

2

的ORM对象关系映射器应该如果你正在做交互式数据操作可以使用如的EntityFramework,典型的OLTP应用程序可以在需要VS使用类似的代码行数获得大的减少普通的ADO.NET API(使用动态SQL或存储过程调用)。ORM确实有性能损失,但是在交互系统中,这种性能损失一方面可以忽略不计,另一方面由于“咕噜声”的大幅度减少,另一方面,因为产生最大性能损失的元素是人与系统

如果交互,你需要做的复杂的东西将运行从某些表采取的东西,并把它变成其他表没有任何交互式用户干预,则性能比较重批处理另一方面ORM方法的惩罚变得明显,在这种情况下,它可以避免将数据库内存空间取出来,并且使用存储过程的性能优势最终变得明显。

所以一般:

  • 使用ORM互动的东西
  • 使用非交互式批东西存储过程
相关问题