上下文在 EF 中起什么作用?
What role does the context in EF?
上下文在 EF 中起什么作用?我必须使用存储库模式吗?
因为根据我对上下文的理解,它已经是存储库。
这是商店的抽象还是我错了?
这个问题引起了激烈的争论,因此考虑以下 "an answer"。
EF 中的上下文是一个工作单元,其中 DbSet 是存储库。它们一起形成了对数据库的抽象。 SaveChanges 方法将提交对每个存储库所做的所有更改。
有很多示例,人们使用存储库模式创建内部使用 context/DbSet 的 IRepository。但这样做你是:
- 在抽象之上创建抽象
- 失去 EF 的功能,因为您的界面隐藏了实现
您创建此额外抽象的原因是您可以将 EF 换成其他东西,例如 database/storage。
但我相信 yagni 在这里就位。例如,如果您正在启动一个针对 SQL 数据库的项目,您的客户将更改为 Oracle 的几率有多大?
希望对您有所帮助。
上下文在 EF 中起什么作用?我必须使用存储库模式吗? 因为根据我对上下文的理解,它已经是存储库。 这是商店的抽象还是我错了?
这个问题引起了激烈的争论,因此考虑以下 "an answer"。
EF 中的上下文是一个工作单元,其中 DbSet 是存储库。它们一起形成了对数据库的抽象。 SaveChanges 方法将提交对每个存储库所做的所有更改。
有很多示例,人们使用存储库模式创建内部使用 context/DbSet 的 IRepository。但这样做你是:
- 在抽象之上创建抽象
- 失去 EF 的功能,因为您的界面隐藏了实现
您创建此额外抽象的原因是您可以将 EF 换成其他东西,例如 database/storage。 但我相信 yagni 在这里就位。例如,如果您正在启动一个针对 SQL 数据库的项目,您的客户将更改为 Oracle 的几率有多大?
希望对您有所帮助。