EF中的上下文有什么作用?

时间:2016-10-28 09:58:00

标签: .net entity-framework orm repository-pattern

EF中的上下文有什么作用?我是否必须使用存储库模式? 因为在我对上下文的理解中它已经是存储库。 这是商店的抽象,还是我错了?

1 个答案:

答案 0 :(得分:1)

这是一个备受争议的问题,因此请将以下内容视为“答案”。

EF中的上下文是工作单元,其中DbSets是存储库。它们共同构成了数据库的抽象。 SaveChanges方法将提交对每个存储库所做的所有更改。

有很多例子,人们使用存储库模式来创建一个内部使用context / DbSet的IRepository。但通过这样做,你是:

  • 在抽象上创建抽象
  • 因为您的界面隐藏了实施而失去了EF的功能

您创建此附加抽象的原因是您可以将EF换成其他内容,比如另一个数据库/存储。 但我相信yagni就在这里。如果您要启动一个针对SQL数据库的项目,那么您的客户将更改为Oracle的几率是多少?

希望这有帮助。