我正在考虑将我的开发团队转移到 LINQ 和 Entity Framework 。如果我这样做了,我是否应该考虑删除 SP?
通常我们的架构是(按顺序);
SQL -> SPs -> Data Access Layer -> Business Objects -> GUI
我是否应该转向类似于以下内容的内容:
SQL -> Entity Framework Layer -> Business Objects (probably inherited from EF layer) -> GUI
如果我留下 SP,我会看到同样多的好处吗?还有什么是最佳实践?
最佳答案
不,它们不是多余的 .
我们 90% 的数据访问代码都使用 Entity Framework 。
这 10% 用于以下场景:
LINQ-Entities(和 LINQ,一般来说)是一个出色且一致的框架,但有时翻译的 SQL 并不像您期望的那样最佳 - 额外的 JOIN、CASE 等。有时在这些情况下,跳过表达式是明智的树翻译并直接转到 native SQL。
更重要的是, Entity Framework 促进了存储过程。您可以将它们映射到模型上,甚至可以将过程直接映射到实体上的 CRUD 操作。
所以一般来说,对于大多数简单的操作(例如 CRUD)使用 EF,并在性能和复杂性是因素时使用存储过程。
哈。
关于.net - 如果使用 Linq 和 EF,SP 是否多余(最佳实践),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517891/