Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework Re:UnitOfWork-上下文可以解耦吗?_Entity Framework_Design Patterns_Repository Pattern_Unit Of Work - Fatal编程技术网

Entity framework Re:UnitOfWork-上下文可以解耦吗?

Entity framework Re:UnitOfWork-上下文可以解耦吗?,entity-framework,design-patterns,repository-pattern,unit-of-work,Entity Framework,Design Patterns,Repository Pattern,Unit Of Work,我刚看完朱莉·勒曼关于企业EF的视频。我特别喜欢自定义数据上下文的概念,因为它可以让我对各个UI进行更精细的控制 朱莉在她的所有职责中都有CRUD方法,这对我来说太多了。我计划创建一个通用存储库,其他存储库从中派生。我不喜欢她 我计划将此方法用于UOW,因为它与存储库相关: 与自定义数据上下文对象的相对条件: 让我们假设我创建了: 一,。CustomerLookup类,该类仅具有完整Customer类的部分属性 我也创造 一,。CustomerLookup数据库上下文 二,。OrdersLoo

我刚看完朱莉·勒曼关于企业EF的视频。我特别喜欢自定义数据上下文的概念,因为它可以让我对各个UI进行更精细的控制

朱莉在她的所有职责中都有CRUD方法,这对我来说太多了。我计划创建一个通用存储库,其他存储库从中派生。我不喜欢她

我计划将此方法用于UOW,因为它与存储库相关:

与自定义数据上下文对象的相对条件:

  • 让我们假设我创建了:

    一,。CustomerLookup类,该类仅具有完整Customer类的部分属性

  • 我也创造

    一,。CustomerLookup数据库上下文

    二,。OrdersLookup数据库上下文,具有完整的Orders类,但忽略配置中的关联实体

  • 如果我遵循上面链接中的UOW示例,UOW将使用FULL DbContext保存更改

    问题:

  • 在API控制器中作为示例时,是否可以实例化UOW,以便使用特定的数据上下文:

    一,。CustomerLookupContext与UOW.customerLookupPrepository.Update(customerLookup)一起使用

    二,。带有UOW.OrdersLookupRepository.Update(订单)的OrdersLookupContext

  • 如果无法将上下文对象与UOW解耦:

  • 我会有问题更新部分类,如上面;或
  • 使用整个DbContext是否会影响性能;或者
  • 我不知道我在说什么&只是使用UOW的完整DbContext

  • 谢谢

    一个应用程序中只能有一个dbcontext。也有例外,比如当您需要访问两个不同的数据库时,但即使如此,我还是喜欢使用SQL Server同义词将它们映射到单个数据库中

    在一个应用程序中放置多个上下文确实存在问题。您将遇到许多编译器错误,并且必须处理名称空间冲突。解决它是可能的,但这是一个巨大的痛苦

    为不同的用途创建不同的上下文没有任何好处。dbcontext的全部要点是,您可以完全访问数据库,在不同的实体中进行更改,然后在一个操作中保存所有更改


    你认为你得到了什么?它不像是将整个数据库加载到内存中

    我对您所说的“使用整个DbContext”和“使用完整DbContext保存更改”的含义感到非常困惑。DbContext是DbContext,没有分部类(有分部类,但这些只是编译单元,它们都被编译成单个类)。