Ef core_efcore复杂查询

Ef core_efcore复杂查询带着问题去思考,大家好! 前几天了解到EF Core的开发模式:DB First(数据库优先),Model First(模式优先),Code First(代码优先)。 我所接触的大多是DB First

EF Core-1

带着问题去思考,大家好!

前几天了解到EF Core的开发模式:DB First(数据库优先),Model First(模式优先),Code First(代码优先)。

我所接触的大多是DB First。如果大家了解的话,有些开源后台项目,基本都会有后两者,因为方便大家更快的去使用部署起来后台。

在建议的Layered [“leɪəd] Architecture [ˈɑːrkɪtektʃər]模式中,—表示层,业务层和数据层,其后Evans分析并引入两个关键变化。

一:将关注点放到layer上,而不是tier。layer是应用程序组件之间的逻辑分隔,而tier是物理上不同的应用程序和服务器。

二:识别的层数分为4各层-表示层-应用层-领域层和基础结构层

Ef core_efcore复杂查询

 

 

 

 

整体式应用程序

  自底向下设计,我们都是围绕着数据模型来进行开发设计,其中的过程以及尤其依赖数据模型的用户界面和体验。

   在整体式应用程序中,数据从底部的持久化存储到前端,然后在返回。

  根据分层架构,我们都知道,从存储到前端以及从前端到存储。我们不应该考虑把应用程序堆栈分成两部分吗?独立处理命令堆栈和读堆栈对于开发是不是更加有效果呢?所以NOSql存储来了,使得经典的RDBMS系统开始支持XML和JSON。这也正式Command and Query Responsibility Segregation(CQRS)模式的使用。

 

 

 

Ef core_efcore复杂查询

 

 

以上是结合CQRS设计的分层架构模式

CQRS方法

CQRS不是万能的,重要的是他的思想。

  有经验的开发人员知道。创建一个理想的数据模型,使其能够将关系数据模型的原则和最终用户实际需要的视图的复杂性结合起来是很困难的。如果只有一个应用程序堆栈,就只能有一个面向持久化的数据模型,但是需要调整这个模型,使其能够有效的满足前端的需求。特别是与某种方法学(如领域驱动设计的额外的抽象层结合起来时),后端(业务逻辑和数据访问逻辑)的设计很容易变得一团乱。

  以上问题。CORS通过将设计问题分解为两个较小的问题,新应用程序架构设计解决问题,并不释施加外部约束,使设计变得更加简单。具有不同的堆栈的好处是,容易为实现名利和查询使用不同的对象模型。有必要,可以为命令使用一个完整的领域模型,为表示使用一个定制的普通的数据传输对象,可能这些对象从SQL查询具体化的,需要多个表示前端,只需要额外创建读模型。整体复杂度是个体复杂度的和,而不是笛卡尔积。

  1:不同的数据库

  分解成不同的堆栈有一些问题,两个堆栈同步问题,数据命令写入能够被一致地读回?根据自身业务,CQRS实现可以基于一种两种数据库,如果使用一个共享数据库,共享数据库确保了经典的ACID一致性,只需要在读堆栈中的普通查询做一些额外的工作。

  性能和扩展行,可以考虑为命令堆栈和读堆栈使用不同的持久化端点。

  Ef core_efcore复杂查询

 

什么时候用CQRS?

这是一种模式,CQRS架构模式主要是被设计来解决高并发业务场景的性能问题。

基础结构层的构成

基础结构层是与使用具体的技术相关的所有东西,包括数据持久化O/RM框架(EF),外部的Web服务,特定的安全API,日志记录,跟踪,IOC容器,缓存等。最突出的是组件的持久化层,也就是数据访问层。

持久化层 缓存层 外部服务这些已经非常成熟,不在这里赘述。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9426.html

(0)
上一篇 2023-02-08
下一篇 2023-02-08

相关推荐

  • Python Class:定义和使用类来组织代码

    Python Class:定义和使用类来组织代码Python是一种简单易学的编程语言。使用Python开发应用程序,涉及到的代码量往往比其他语言要少,提高了程序的开发效率。在Python中,类是一种非常重要而且强大的机制,它可以帮助开发者组织代码并且降低代码的重复性。类的使用方式类似于其他面向对象的编程语言,比如Java、C++等。

    2024-01-20
    61
  • dpsir框架_AI少女框架

    dpsir框架_AI少女框架DB4AI这个方向中,数据库通过集成AI能力,在用户进行AI计算时就可以避免数据搬运的问题。不同于其他的DB4AI框架,本次openGauss开源的原生框架是通过添加AI算子的方式完成数据库中的AI计

    2023-06-17
    97
  • hive表存储格式的区别_论文表格格式

    hive表存储格式的区别_论文表格格式Hive的文件存储格式: textFile textFile为默认格式 存储方式:行存储 缺点:磁盘开销大;数据解析开销大;压缩的text文件,hive无法进行合并和拆分 sequencefile 二

    2022-12-20
    103
  • 阿里规范不建议多表Join,可这SQL要怎么写?

    阿里规范不建议多表Join,可这SQL要怎么写?阿里开发手册的描述,禁止多表join: 手册上写着【强制】,相信很多同学项目里面的代码都不满足这个要求。 但是关键问题是:不用join,这SQL究竟要怎么写?! 分解关联查询 即对每个要关联的表进行…

    2022-12-15
    106
  • 2017年下学期仁爱版英语教学工作计划[通俗易懂]

    2017年下学期仁爱版英语教学工作计划[通俗易懂]一、学期教学目标: 学生应有较明确的英语学习动机和积极主动的学习态度。能听懂教师对有关熟悉话题的陈述并能参与讨论。七年级学生能阅读的简单读物和报纸杂志,克服生词障碍,理解大意。能根据阅读目的运用适当…

    2022-12-25
    102
  • 用 Python 制作游戏脚本

    用 Python 制作游戏脚本在今天的游戏市场中,游戏制作已经不再是只能由程序员和设计师来完成了。现在,越来越多的人开始使用Python编写游戏脚本。Python作为一种高级编程语言,具有很多强大的功能,包括易于学习、简洁的语法和适用于各种平台。这篇文章将介绍如何使用Python编写游戏脚本,并提供一些参考性代码示例。

    2024-05-07
    9
  • 使用SqlSugar连接Oracle数据库报错需要引用Oracle.ManagedDataAccess.dll的处理方法

    使用SqlSugar连接Oracle数据库报错需要引用Oracle.ManagedDataAccess.dll的处理方法在使用SqlSugar框架连接Oracle数据库报错需要引用Oracle.ManagedDataAccess.dll的处理方法 当我们使用SqlSugar框架时,一般都会通过Visual Studio

    2023-04-21
    123
  • isleap用法python(c语言isleap什么意思)

    isleap用法python(c语言isleap什么意思)直接使用python calender模块即可。

    2023-10-31
    76

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注