首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rafy 领域实体框架设计 - 重构 ORM 中的 Sql 生成

前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能。...但是过程中,一直没有修改最核心的 Sql 语句生成模块。随着应用的不断深入,遇到的场景越来越多,需要生成复杂 Sql 语句的场景也越来越多。...IQuery 作为描述查询的核心类型,被重命名为 IPropertyQuery,所有方法的参数也都直接面向 Rafy 实体的《托管属性》。但是在整体结构上,还是与原框架保持一致。...IQuery 相关接口用于描述整个基于实体的查询。...EntityQuery 层中的类型实现了 IQuery 中对应的接口,并使用领域实体的相关 API 来实现从实体到表、实体属性到列的转换。

2.1K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    最简洁的分页插件PageHelper

    大部分后台管理项目,用的最多的展现方式是列表显示,所以我把列表查询中的分页插件拿出来写一下,方便以后写代码的时候直接复制粘贴。...在我们最熟悉的springboot微服务开发中,持久型框架mybatis使用PageHelper还是比较方便的。下面我们来看一下分页插件PageHelper的简单使用方法。...true" supportMethodsArguments: "true" returnPageInfo: check params: count=countSql 3.建立一个分页传输数据的实体...; /** * 包装实体 */ private Object data; /** * 返回dataGrid的总页数 */ private...同样如果后台返回固定的json格式数据,前台自动加载到列表控件中。后续我会分享更多的技术相关的内容,请大家多多关注。

    1.2K30

    dotNET Core WebAPI 统一处理(返回值、参数验证、异常)

    环境 dotNet Core:2.1 VS For Mac:8.1 文档 Swagger 是一个 API 文档生成框架,在非 Core 时代就一直在使用,现在前后端分离的模式下,API 文档更是非常重要...安装 在 VS For Mac 中创建 API 项目 DotNetCoreApiSample ,在依赖项中的 NuGet 上点击右键,选择添加包,如下图: ?...参数验证 此处所说的参数验证指的是实体类型的参数验证,通过在实体的属性上添加特性的方式来实现。...返回值 返回值的统一处理需要下面几个步骤: 创建统一返回结果的实体类,所有的接口方法都返回固定格式,方便前端统一处理 创建过滤器,过滤器用来拦截请求,包装结果,统一输出 Startup 类中进行配置注册...结果实体类 接口的返回值需要统一的格式,下面的属性字段是我认为必须要有的 Result:返回的结果 Message:出现错误或需要提示时的提示文本内容 Code:调用成功、失败或出错时的编码 ReturnStatus

    11.4K60

    【详解】SpringBootValidator校验相关的注解信息

    在Spring Boot中,​​@Valid​​​ 和 ​​@Validated​​​ 注解用于数据校验,而 ​​javax.validation​​​ 包中的注解(如 ​​@NotNull​​​, ​​...@NotEmpty​​​, ​​@Size​​ 等)则用于具体的字段校验。...在Spring Boot中,使用​​@Valid​​和​​@Validated​​等注解可以对控制器方法的参数进行数据校验。...示例:​​@Max(100) private int age;​​@DecimalMin(value)确保字段的值大于或等于指定的最小值(适用于浮点数)。...BindingResult​​ 对象用于捕获校验错误,并返回给客户端。通过这种方式,你可以在Spring Boot应用中轻松地实现输入参数的校验,提高应用的健壮性和用户体验。

    14810

    ASP.NET MVC编程——模型

    1 ViewModel 是一种专门提供给View使用的模型,使用ViewModel的理由是实体或领域模型所包含的属性比View使用的多或少,这种情况下实体或领域模型不适合View使用。...CustomValidation 自定义验证规则 DisplayName 设置字段的显示名称 Compare 比较两个字段是否一致 可用于确认第二次输入是否与第一次一致 MinLength 设置数组或字符串最小长度...当操作带有参数时,MVC框架使用模型绑定器(默认的或自定义的)在Http请求中查找数据,用于构建控制器操作的参数列表。 验证发生的时间 模型验证是在操作执行之前完成的。...当模型绑定器使用新值对模型属性更新后,会利用当前模型元数据获得模型验证器,模型验证器会找到所有施加于模型属性的特性并执行验证逻辑,然后模型绑定器会捕获所有失败的验证规则,并将它们放入模型状态中。...Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.黄保翕,ASP.NET MVC4开发指南 4.蒋金楠,ASP.NET MVC4框架揭秘 5.https://www.asp.net

    2.4K80

    .Net高级进阶,教你如何构建企业模型数据拦截层,动态控制字段验证

    上面这个图只是个理想中的小例子,实际开发情况是,可能一次性要传十几个字段甚至更多。 那么在实际开发中,通常为了复用性,我们将这3个参数用一个实体类来代替。 即如下所示。 ? ?...那么我能不能在控制器方法中 验证实体类这一步 给挪掉,不写到控制器的方法当中,写在另一个地方,统一进行管理,实现实体类的验证与控制器中的方法业务逻辑分除。...上面看到[Required],[StringLength],[RegularExpression]的这些叫做验证特性,是.net框架已经封装好的,它会对标注特性的字段采取验证。...我们看下控制器方法中的写法: ? 如图,用 ModelState.IsValid  这段话来对验证结果进行判定,如果实体类上的被标注的特性都满足条件的话,就为true,否则为false。...或者你直接不用这些框架封装好的验证特性,使用自己定义自定义验证特性,然后把控制方法都写在里面?这样太麻烦,而且违背初衷。自定义ModelBinder ?更扯淡。

    84310

    FluentValidation在C# WPF中的应用

    简介unsetunset 介绍FluentValidation的文章不少,零度编程(站长注:原文已失连)的介绍我引用下: FluentValidation 是一个基于 .NET 开发的验证框架,开源免费...其实它也可以用于WPF属性验证,本文主要也是讲解该组件在WPF中的使用,FluentValidation官网是: https://fluentvalidation.net/ 。...创建测试实体类 4.2.1. 普通类 - Student 此类用作ViewModel中的对象属性使用,学生类包含3个属性:名字、年龄、邮政编码。...此实体需要继承IDataErrorInfo接口,用于触发FluentValidation验证使用。...创建验证器 验证属性的写法有两种: 可以在实体属性上方添加特性(本文不作特别说明,百度文章介绍很多); 通过代码的形式添加,如下方,创建一个验证器类,继承自AbstractValidator,在此验证器构造函数中写规则验证属性

    19110

    从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之二 || 后端项目搭建

    所有注入的services(此外还包括一些框架已经注册好的services) 在以后写代码的时候, 都可以将它们注入(inject)进去....这是因为我只添加了MVC middleware, 但是它啥也没做, 也没有找到任何可用于处理请求的代码, 所以我们要添加Controller来返回数据/资源等等 四、核心知识点 1、Routing 路由...CreatedAtRoute第二个参数就是对应着GetProduct的参数列表, 使用匿名类即可, 最后一个参数是我们刚刚创建的数据实体....但是如果body数据的属性有问题, 比如说name没有填写, 或者name太长, 那么在执行action方法的时候就会报错, 这时候框架会自动抛出500异常, 表示是服务器的错误, 这是不对的...., 需要一个id这样的参数, 用于查找现有的model.

    1.1K20

    一个用于量化生物化学下游任务中跨模态蛋白质表示的框架

    作者提出了一个多模态深度学习框架,用于融合约1百万个蛋白质序列、结构和功能注释(MASSA)。通过多任务学习过程和五个特定的预训练目标,提取了细粒度的蛋白质域特征。...在这里,作者提出了MASSA,一个多模态蛋白质表示框架,它将蛋白质序列、结构和功能注释的领域知识整合在一起(见图1)。生成的蛋白质表示将用于下游任务和跨任务学习过程的量化。...在图2b中,所示蛋白质样本中的序列集“SSLSA”代表模体1。该部分的每个氨基酸都有其自己的位置、知识和类别。为了嵌入这些信息,作者采用了类似于自然语言处理中的命名实体识别策略的方法。...在第一步中,初始的序列和GO嵌入由蛋白质语言模型ESM-MSA-1b和作者提出的用于GO术语的图卷积网络GraphGO提供。...在本研究中,作者提出了一种多模态蛋白质表示框架,用于整合蛋白质序列、结构和功能信息的领域知识。通过精心设计预训练过程,作者创建一个具有广泛适用性的蛋白质表示学习工具。

    35030

    DDD领域驱动设计 (C# 整理自“老张的哲学”)

    大话DDD领域驱动设计 概念 Domain Driven Design 领域驱动设计 第一个D(Domain): 领域:指围绕业务为核心而划分的实体模块。...好的做法是使用根实体(Root Entity)来表示聚合,其中只包含最小数量的属性或值类型属性。哪些属性是所需的呢??简单的答案是:那些必须与其他属性保持一致的属性。...用于我们的特定的数据库连接,当然我们可以公用 api 层的配置文件,这里单独拿出来,用于配合着下边的EFCore,进行注册。...适用于一些需要对查询性能和写入性能分开进行优化的系统,尤其是读/写比非常高的系统,横向扩展是必须的。比如,在很多系统中读操作的请求时远大于写操作。...少量的写模型实例能够减少合并冲突发生的情况 适用于一些团队中,一些有经验的开发者可以关注复杂的领域模型,这些用到写操作,而另一些经验较少的开发者可以关注用户界面上的读模型。

    2K20

    nestjs搭建HTTP与WebSocket服务

    最近在做一款轻量级IM产品,后端技术栈框架使用了nodejs + nestjs作为服务端。...userId=${userId} 为了实现上述接口,我们按照如下流程进行API搭建: 在src/entity目录中,我们创建一个user目录,并在其中创建user.dto.ts文件专门用于定义用户User...= httpHost.getResponse(); response.status(httpStatusCode).json(responseWrapper); } } 该类的核心点在于...) 该机制由连续的 HTTP 请求组成: 长时间运行的请求,用于从服务器接收数据GET 短运行请求,用于将数据发送到服务器POST 由于传输的性质,连续的发出可以在同一 HTTP 请求中连接和发送。...2)WebSocket的异常过滤器中,想要继续后的数据处理,需要在方法返回前,从host中取到第三个参数对象(索引值为2),该值是一个回调函数,将处理后的数据作为参数,调用该callback方法,框架才能继续处理

    74930

    C#利用IDbCommand实现通用数据库脚本执行程序

    关于 ExecuteNonQuery 在.net 应用中,在数据库中执行脚本程序是经常用到的功能,如数据操作(新增、修改、删除等),执行一个存储过程等,实现的核心方法需要执行 Command 对象的ExecuteNonQuery...生成数据集对象需要利用 ADO.NET 中的数据提供者对象包括IDbConnection、IDbCommand、IDbDataParameter等,如何使用这些对象请参考我的文章: 《C#实现 IDbConnection...序号 成员 类型 说明 1 public string ConnKeyString="" 属性 访问在ConfigurationSettings.AppSettings[ConnKeyString]中存储的数据连接串...ExecDbScripts 方法用于执行数据库脚本 ExecDbScripts 方法无返回值,均通过设置 ErrorMessage、RowsCount、ErrorNum属性实现,其参数说明见下表:...序号 参数名 类型 说明 2 _sql string 要执行的SQL语句命令行 3 paras ArrayList 要赋值的参数对象,逐个添加到ArrayList里,请注意参数为实体数据参数对象,如 MS

    10810

    在SpringMVC框架中统一处理异常及请求参数验证(4)

    在SpringMVC框架中统一处理异常 在SpringMVC框架中提供了统一处理异常的机制(当然,在SpringBoot框架中也可以直接使用),使得每种异常只需要被处理1次即可,即使某种异常在多种请求中都会出现...其核心是开发人员调用了可能抛出异常的方法时,在控制器中,直接将异常再次抛出,则SpringMVC在调用控制器的方法时,就会捕获到对应的异常对象,并且,如果开发人员定义了统一处理异常的方法,则SpringMVC...关于统一处理异常的方法: 默认情况下,该方法只能作用于当前控制器类中的相关请求,例如,将该方法写在UserController中,只能作用了UserController 中处理的各个请求,如果在其它控制器的方法执行过程中出现了异常...,可参考处理请求的方法的返回值的设计原则; 方法名称可以自定义; 方法的参数列表至少需要添加异常类型的参数,用于表示被框架捕获的异常对象,关于参数的异常类型,要求能够表示任何将被处理的异常;...:用于自动生成一些项目中的文件,包括:实体类、持久层接口、持久层XML、业务层接口、业务层实现类、控制器类,它是基于数据表的字段设计来自动生成的; Spring Security:未完待续; Spring

    79020

    单细胞分析工具 | DeepCCI:用于从scRNA-seq 数据中识别细胞间相互作用的深度学习框架

    2023年9月,《Bioinformatics》发表了一个深度学习框架——DeepCCI,用于从scRNA-seq数据中识别有意义的CCIs。 DeepCCI是什么?...DeepCCI是一种基于图卷积网络(GCN)的深度学习框架,用于从scRNA-seq数据中鉴定CCIs。...为了从scRNA-seq数据中一站式探索细胞之间的相互作用,DeepCCI提供了两个深度学习模型:(i)用于细胞聚类的基于GCN的无监督模型,以及(ii)用于CCI识别的基于GCN的监督模型。...然后,开发团队手动策划了一个名为LRIDB的综合信号分子相互作用数据库,用于与多亚基的L–R相互作用。根据LRIDB,DeepCCI预测给定scRNA-seq数据中任何一对簇之间的细胞间串扰。...DeepCCI的性能测试 开发团队通过将DeepCCI应用于几个公开可用的scRNA-seq数据集来展示其整体能力。

    60420
    领券