2015-02-11 52 views
0

我们已经构建了一个ASP.NET MVC Web API Web应用程序,它使用Entity Framework v6.1进行数据访问。最近,一位新的数据库架构师开始与该公司合作,并表示我们应该转向存储过程以访问所有数据库。实体框架是否被Microsoft视为数据访问的“最佳实践”?

虽然存储过程当然可以与Entity Framework一起使用,但在我看来,EF带来的许多好处将被通过存储过程强制所有数据访问取代。也就是说,我可能是错的,希望能够做出明智的决定。

微软对数据访问和最佳实践的看法是什么?实体框架是否应该用于大规模,以数据为中心的Web应用程序?如果使用实体框架,是否应该通过存储过程完成所有数据访问?

+1

EF是一个工具,和存储过程一样。工具可以帮助某些工作。根据您的需要,您的企业应用程序可以并应该安全地使用这两种工具。 – Matthew 2015-02-11 18:37:57

回答

2

虽然我会争辩说这个问题没有正确的答案,但有可能找到你的选择。使用sprocs的好处是众所周知的很多倍。在我们拥有强大的ORM框架之前的日子里,sprocs是我们最好的选择。编写自己的数据访问代码,通常使用sprocs将每次都击败每个ORM工具。但是需要花时间来编写ORM工具的亮点。

现在您已经使用EF编写了您的数据访问层。你有理由相信它有问题吗?如果你这样做,然后考虑sprocs。您需要根据具体情况向专业人士索取&。

清扫概括很少工作。

+0

感谢您的反馈。我们确实有一些离奇的LINQ查询,其中存储特效是一个好主意。但是,要说所有的数据访问必须通过存储过程似乎对我来说过分矫枉过正,并且会消除EF带来的一些好处,但这就是为什么我要求如果它不是 – webworm 2015-02-11 21:17:27

+0

我通常会为所有C /用于一致性的U/D操作(例如,总是更新“上次更新”和“上次更新”),并且USUALLY用于基于索引/外键 – 2015-04-01 09:11:06