什么选择 EF 与存储过程或 EF 与 T-SQL 语句

Posted

技术标签:

【中文标题】什么选择 EF 与存储过程或 EF 与 T-SQL 语句【英文标题】:What to choose EF with stored procedure OR EF with T-SQL statement 【发布时间】:2014-08-04 18:41:42 【问题描述】:

我想了解新项目的最佳选择。

我的新项目将有 - 两个数据库,其中两个数据库之间相关表的相互关系。

此外,存储过程逻辑可以不仅仅是简单的 CRUD 操作。

应用程序将在 MVC 4 中。恐怕,EF 可能不会花费更多的成本来开发。我也是 EF 的新手,我们使用带有存储过程的 ADO.NET。

请建议, 1.我将要求使用存储过程,因为主要好处是无需重新编译.NET代码以防过程发生任何变化,并在数据库端单独维护,因此如果需要可以直接更改。 不过,在前端使用 EF 作为 T-SQL 语句(无存储过程)有什么好处? 2. Entity Framework 和存储过程是很好的设计还是比 ADO.NET 贵?

请指导决定这个?

谢谢

【问题讨论】:

我认为你应该选择两者,你可以利用 EF 创建的所有对象。使用存储过程(ADO.NET 不是 EF 的函数,这很烦人,你必须将每个过程导入模型)来执行读/写/删除 .. 操作 您能否分享任何使用 EF 和存储过程的架构的链接或文档。 【参考方案1】:

据我了解,您也可以在 EF 中使用存储过程,这样您就可以两全其美,所以我肯定会选择 EF。

【讨论】:

是否有任何性能成本,因为它不会使用已生成的代码(sql 语句),而 EF(datacontext)只会用于调用存储过程。在这种情况下什么是最好的 ADO.NET 或 ef.

以上是关于什么选择 EF 与存储过程或 EF 与 T-SQL 语句的主要内容,如果未能解决你的问题,请参考以下文章

实体框架与存储过程 - 性能度量

EF 无法从 #temp 表中选择的存储过程推断返回模式

EF中使用SQL语句或存储过程

无法使用 EF Core 或 LinqToDb EF Core Tools 或 ADO.NET 运行任何存储过程创建脚本

EF6:创建存储过程。使用 Fluent API 或 DBMigrations?

EF 存储过程(上)