ADO.NET实体框架比我使用的方法更好?

时间:2011-03-09 15:08:23

标签: asp.net entity-framework ado.net

我已经阅读了一些关于ADO.NET实体框架的内容,但有一些我不知道的事情。现在(不使用EF,不确定调用这种技术,只是ADO.NET?)我们将所有程序存储在数据库中,如果我们必须更改任何东西,只需进入数据库并更改查询,很容易(除了我有100多个查询的事实)。

如果我对EF是正确的,我可以更容易查询(没有连接,更短的查询),但所有内容都保存在实体数据模型中。因此,如果我需要更改查询,我将不得不启动VS进入,找到位置并更改查询(我猜这将是linq-to-sql或实体SQL来执行查询)

我只需要对EF和Entity SQL与Linq-to-SQL进行一些澄清。

谢谢!

1 个答案:

答案 0 :(得分:1)

使用EF时,您可以使用多种类型的数据访问:

  • Enity SQL - 它的语法类似于普通SQL,但查询直接在代码或实体模型中。如果要更改查询,则必须重新构建并重新部署应用程序。
  • Linq-to-entities - Linq在实体模型之上查询。同样,如果要更改查询,则必须重新构建并重新部署应用程序。
  • 执行导入到模型的存储过程(也称为函数导入) - 这只是作为.NET函数在ObjectContext上公开的sotred过程。 EF将处理参数和结果映射。
  • ExecuteStoreQueryExecuteStoreCommand执行直接SQL(仅限EFv4)。在这里,您可以调用任何SQL,包括存储过程。

因此,使用EF,您既可以使用当前的方法,也可以使用EF本身。此外,通过EF调用本机SQL具有一些优点,如自动映射到准备好的类。

无论如何,你所描述的是非常罕见的情况。在许多公司中,修改DB中的某些内容需要修改应用程序的相同过程(甚至更复杂),因此您不能简单地在生产中修改存储过程。