0

使用结果的可重用性如何EF

目前,我使用stored procedures100% 的数据访问。我可能希望为我的最新项目做一些不同的事情的主要原因是为了可维护性:向表添加属性意味着手动更改数十个存储过程。如果我理解EF正确,我应该能够在我的EF模型中为实体添加一个属性,然后要求为我EF更新我的CRUD方法。惊人的。

然而,有一件事阻碍了我:可重用性。我喜欢我可以为给定数据库制作一次 SP,然后完成它们;我可以制作 12 个都使用该数据库的应用程序,并且获取该数据就像调用正确的 SP 一样简单。

  • 如果我改用更以 EF 为中心的方法,情况也会如此吗?

  • 我可以导入现有的 EF 数据模型并让它运行起来没有太多麻烦吗?

  • 我能否做到一次更改数据模型,并且所有应用程序都能感受到这种更改?

4

3 回答 3

2

广告1。如果您遵循存储库模式,您可以轻松地重用复杂的 EF 查询。存储库是您封装数据访问的地方,是的,存储库很容易在不同的模块/应用程序之间重用。

(并不是说没有存储库就不能重用代码!存储库只是数据访问层的常用方法)

广告2。我不确定“导入现有的 EF 模型”是什么意思(导入到哪里?),但通常 EF 模型很简单,可以重复使用

广告3。只需将您的模型放在单独的组件中即可。

于 2013-09-16T19:55:06.880 回答
1

使用的真正好处EF远离存储过程。对所有数据访问使用存储过程存在的问题是,您被迫将业务逻辑放入数据层

查看数据访问层是否应该包含业务逻辑?虽然并非在所有情况下都是如此,但通常将业务逻辑保留在业务层中可以让您更好地分离关注点。

我有一个EF项目用作多个应用程序的数据层。这使我可以更改一次并让所有其他项目都受益。当然,有时需要在这些其他项目中更改支持代码,但在存储过程模型中也会遇到同样的问题。

于 2013-09-16T20:41:34.907 回答
0

任何 N 层设计都可以通过简单地创建一个类(在类库中)来解决这个问题,该类了解如何使用实体框架访问数据。然后任何想要访问数据的应用程序都使用类库,在 app.config 或 web.config 中配置一个连接字符串,然后就完成了。

于 2013-09-16T19:54:14.120 回答