当前位置: 首页 > 知识库问答 >
问题:

实体框架的IEntityWrapper接口背后是哪种设计模式?

丌官凯康
2023-03-14

我正在检查EF6代码。我遇到了IEntityWrapper接口,BaseEntityWrapper类和EntityWrapper。

这里实现的设计模式是什么?

https://github.com/aspnet/EntityFramework6/blob/master/src/EntityFramework/Core/Objects/Internal/IEntityWrapper.cs https://github.com/aspnet/EntityFramework6/blob/master/src/EntityFramework/Core/Objects/Internal/BaseEntityWrapper.cs https://github.com/aspnet/EntityFramework6/blob/master/src/EntityFramework/Core/Objects/Internal/EntityWrapper.cs

共有1个答案

章茂
2023-03-14

基本上在实体框架中实现了两种设计模式

  1. 工作单元模式
  2. 存储库模式

它是存储库模式的泛型包装器,DBContext 类表示工作单元模式。

存储库模式位于< code>IEntityWrapper接口的后面。

 类似资料:
  • 在网上搜索和阅读了关于设计模式的文章后,我发现了三种类型,即行为型、创造型和结构型设计模式(GOF)。

  • 我是设计模式领域的新手,我正在尝试了解其中的诀窍。我曾多次听到人们使用的“工厂”或“工厂模式”,但当我开始学习设计模式(目前我正在读GoF的书)时,我了解到实际上并不存在“工厂设计模式”这样的东西。GoF这本书描述了两种与工厂相关的模式:“抽象工厂”和“工厂方法”。 所以我的问题是这样的--当人们只说“工厂”(没有添加任何其他东西)时,他们实际上指的是哪种设计模式? 我找到了两个关于这件事的消息来

  • 我最近开始使用iOS应用程序。我可以看到,UIKit提供的许多现成的对象都使用了委托模式。例如,UITableView有一个datasource和一个委托,用于提供数据和其他表视图功能。 那么,这个委托模式、策略设计模式背后的底层设计模式是什么?对我有利的原因是,在策略模式中,委托对象具有对委托的引用,该引用确认了特定的接口。 比方说,我有一个类MyDataSource,它符合协议/接口UITab

  • 如何模拟AsNoTracking方法? 在下面的示例中,DbContext已经注入到服务类中,如果我从GetOrderedProducts方法中移除AsNoTracking扩展方法,它可以正常工作,但是with AsNoTracking测试失败,因为它返回null。我还试图模拟AsNoTracking以返回正确的值,但它不起作用。

  • 这一章将以PhalApi为立足点,却又超越PhalApi这一具体成例,讲述如何设计接口框架。 9.1 正统 任何一个开源框架,或者说任何一个负责任、正式的开源框架,它都不是一时兴起,或者是随意而为的。如果真的打算设计一个接口框架,至少要把它摆上台面,并按照一定的流程规范、遵循既有的约定和惯例。这意味着不仅需要投入大量时间长期维护,还需要花费心思和精力、秉持着严谨的态度,以及团队或社区的参与和支持。

  • 本文向大家介绍javascript框架设计读书笔记之种子模块,包括了javascript框架设计读书笔记之种子模块的使用技巧和注意事项,需要的朋友参考一下 1.命名空间:   js里面的命名空间就是使用对象的属性来扩展的。比如,用户定义一个A对象,A对象下面有B属性和C属性,同时B属性和C属性又是对象。因此A={B:{},C:{}},这时用户就可以在B对象和C对象中定义一样的方法,属性了。因此B和