EF中的上下文有什么作用?我是否必须使用存储库模式? 因为在我对上下文的理解中它已经是存储库。 这是商店的抽象,还是我错了?
答案 0 :(得分:1)
这是一个备受争议的问题,因此请将以下内容视为“答案”。
EF中的上下文是工作单元,其中DbSets是存储库。它们共同构成了数据库的抽象。 SaveChanges方法将提交对每个存储库所做的所有更改。
有很多例子,人们使用存储库模式来创建一个内部使用context / DbSet的IRepository。但通过这样做,你是:
您创建此附加抽象的原因是您可以将EF换成其他内容,比如另一个数据库/存储。 但我相信yagni就在这里。如果您要启动一个针对SQL数据库的项目,那么您的客户将更改为Oracle的几率是多少?
希望这有帮助。