首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

《OEA - 实体扩展属性系统 - 设计方案说明书》

.. 26 5.1.2 强制替换属性... 27 5.1.3 属性设置时的取消与强制替换... 27 5.1.4 引用实体属性的设置取消... 28 5.1.5 属性变更事件... 29...1.4 提升框架性能 对于框架开发来说,常常需要在框架中对实体的属性做统一的处理,来向应用层提供强大的功能支持。如果使用一般的实体设计,那么属性的获取、设置都不可避免地要使用到反射。...ManagedPropertyObject 表示拥有托管属性的对象基类(实体),其中定义了根据ManagedProperty来获取、设置的接口,这使得该对象能够象一般对象一样获取、存储各种。...接下来,说明一些相对重要的代码: l 先是ManagedPropertyObject中的属性获取、设置相关代码: ? 前面的设计方案中提到,这个类主要作为所有实体类的基类,提供的获取、设置等。...其中,它的私有字段定义如下: ? 可以看到,编译期、启动期属性与运行期属性被分开存放。前者使用数组,构造函数直接初始化,而后者则在需要时才会被序列化。

1.8K71

ORM中的继承关系映射全解——单表继承体系、一实体一具体表、一实体扩展表、接口映射

单表继承体系优点是读/写继承体系中的每个实体的数据,都只需操作一张表,性能较好,并且,新增继承类,或扩展实体属性都只需要增减一张表的字段就可以了,易于维护;主要缺点是,因为所有的实体共享一张表,表中会有比较多的...但是,以这样的简单方式定义单表继承时,因为从表中读数据时无法知道一行数据真正对应的是哪一个子类,所以,实际情况下,一般我们都要附加一些查询条件和字段默认。 ...带附加条件的单表继承体系 采用单表继承体系方案时,继承体系中的不同子类不仅仅扩展父类的属性,肯定还会附带一些字段查询条件和默认。...因此,我们需要定义附加的查询条件和插入默认,即为Message表增加一个MessageType字段,该字段为1的数据代表CommonMessage,为2代表该行数据是SpecialMessage,...;当插入数据时,为CommonMessage和SpecialMessage,框架也会自动为其设置必要的MessageType默认

2.4K90

新生命开发团队Orm框架XCode v3.5.2009.0714源码发布(圣诞随心大礼包)

XCode有一个设置DatabaseSchema_Enable,打开后,每次启动网站,都将检查表结构,如果数据库或者数据表不存在,将会根据实体类信息自动创建,如果数据表结构不一致,将会自动修改。...* 增加对二进制字段的支持,表现为Byte[] * * v6.4.2010.1217 修正Entity中CheckColumn无法正确计算选择字段的错误...,用于存储扩展属性,并增加专属的GetExtend方法用于获取扩展属性,向依赖实体类注册数据更改事件 * (重要更新)实体树类升级为实体树基类,所有具有树形结构数据的实体类...* * v3.0.2009.0608 元数据类Meta增加一个字段名列表属性FieldNames * 调整DatabaseSchema类,新增字段时,直接设置默认...,由于该功能的增加将导致以前所有的实体无法Update到数据库,故版本改为3.0 * * v2.3.2009.0530 修正非自增字段做主键时也调用InsertAndGetIdentity的错误

1.6K70

数据库表结构设计原则有哪些_数据库表的设计方法

但是有些字段必须建立索引却又无法简化,这时候可以考虑用hash算法计算出较小的作为索引。...例如url字段不适合做索引,但是可以用一个url_md5字段来存储url的md5来作为索引,有效降低键值长度。 减小数据量。...如果实在无法再分并且还是字段众多,那么可以把描述同一个对象的字段合并成一个字段存储,有效降低字段数目,如果空字段较多时,这样更能节省资源。...如果主要实体不共享从属实体,把从属实体多个字段打包合并为一个字段。合并字段的方式在上面也有提及,它不仅减少字段数目,而且让在合并的字段中增加数据字段变得非常容易。...复杂的大表里,首先确定核心的业务实体字段、外键和索引,而其他的字段则根据情况包合并到一个extra(xml或者字符串类型)的字段里,这样也就可以满足了以后的扩展需求,因为字符串或者xml结构里增加数据字段是很容易的事情

67920

增量累加

且不说加锁和事务成本有多高,光是为了一个字段就锁住这一行导致用户无法更新这一行其它字段,就让人觉得挺不地道的。再者,访问次数对于其它字段来说,也许并没有那么重要。...设置增量累加 在实体类静态构造函数中,可以设置需要增量累加的字段 ?...并且,这段代码不管执行多少次,都是这样的累加效果,而不管实际是多少。 累加原理 从数据库查出来一个对象时,如果发现有设置累加字段,XCode会把此时的数据“备份” 下来。...在执行update保存的时候,拿累加字段的最后减去原始备份,得到差值(可能是负数),生成 x=x+123 或 x=x-456 的语句。 不光整数,小数也可以设置累加字段。...重载拦截,自增字段,Valid验证,实体模型(时间,用户,IP) 脏数据。如何产生,怎么利用 增量累加。高并发统计 事务处理。单表和多表,不同连接,多种写法 扩展属性。多表关联,Map映射 高级查询。

1.7K10

rfc 5280 X.509 PKI 解析

无法确定一个证书的超期时间时,可以给notAfer设置GeneralizedTime类型的99991231235959Z。...一个使用证书的系统在接收到设置为critical但无法识别或无法处理的证书时,必须拒绝处理该证书。一个non-critical的证书在无法识别时可能会被忽略。下面章节给出了建议使用的扩展。...当路径中的证书禁止处理anyPolicy时,后续的证书无法无法处理。如果设置了initial-any-policy-inhibit,则初始为0,否则初始为n+1(即都允许处理)。...如果证书出现permittedSubtrees,将permitted_subtrees状态变量设置为它先前的和证书扩展中的的交集。...如果证书出现excludedSubtrees ,将excluded_subtrees状态变量设置为它先前的和证书扩展中的的并集。

1.8K20

对LinqtoExcel的扩展 【数据有限性,逻辑有效性】

所以对其进行扩展扩展的内容主要就是在实体转换前对数据进行验证。...经过网络的简单学习,我总结验证包含俩点 1.默认验证参数有效性 2.自定是逻辑有效性 数据有效性 数据有效性主要指的是Excel单元格字段类型是否和定义的实体类属性字段一致,如果不一致需要提示。...例如定义了一个字段Datetime,但是传进来的内容是2018年9月33日。这种不符合要求的数据就是有问题的。...逻辑有效性 逻辑有效性这个就更加好理解了,Excel的单元格只允许出现 是 否 这俩,可是用户却填写了不是这样的,后来在验证的时候就要过滤并给出错误提示 我的扩展主要就是基于这俩个内容,大概的代码贴图如下...,这个方法和LinqToExcel的方法使用类似,如果实体类未定义映射的特性标签,那么就通过如下方式自定义设置 /// /// 基础验证 自定义对应关系

61980

FreeSql 新的八大骚功能

最近的一段时间,关注我们的人时不时会看见扩展包发布,今天振奋人心的功能主要是核心部分实现(扩展包今天当配角)。就不多啰嗦了,咱们直接入主题。...细看一下,实体内有 BigInteger 类型,这可是数据库无法表示的类型,现在就是可以使用(没辙)。...但请注意:BigInteger 仅仅是 CURD 方便, Equals == 判断可以使用,无法使用 + - * / 等操作; 默认映射 以上类型和长度是默认,可手工设置,...即 Dto 只要有属性名与实体属性相同,就会根据匹配到的字段查询(不是查询所有字段回来再映射)。 然后这个骚操作,还支持多表查询的映射,怎么解决多表存在相同名字的字段问题呢?...它是 FreeSql 衍生出来的 .NETCore MVC 中间件、中间件、中间件(重复三遍)扩展包,基于 AdminLTE 前端框架动态产生实体的增删查改界面; 输入:实体1、实体2、实体3

1.6K30

实体列表缓存(最土的方法实现百万级性能)

使用缓存的阈值 1000是一个大量实践得到的: 小于1000时,内存搜索远胜于数据库,毕竟数据库还有网络开销和序列化为实体对象的开销; 大于10000时,内存搜索就不如数据库了; 1000到10000...还是学生班级的例子,为了在学生列表页展示班级名称,而学生表student只有班级编号classid字段,当时的做法是建立Class扩展属性,借助Class.FindByID查询。...设置文件的 EntityCacheExpire, 默认10秒 添删改过期。对实体类的添删改操作完成后,都会直接修改实体缓存对应项,而不会清空整个列表。...由于实体缓存的添删改过期跟实体操作绑定在一起,因此,越过实体类直接DAL执行更新操作,或者其它服务器修改数据,此时无法影响实体缓存,导致数据更新不及时。...早期版本XCode实体缓存默认过期时间60秒,随着数据库性能提升,默认修改为10秒,可根据实际场景设置

79410

对象字典缓存(百万军中取敌首级)

由于缓存的添删改过期跟实体操作绑定在一起,因此,越过实体类直接DAL执行更新操作,或者其它服务器修改数据,此时无法影响实体缓存,导致数据更新不及时。...早期版本XCode缓存默认过期时间60秒,随着数据库性能提升,默认修改为10秒,可根据实际场景设置。 系列教程 NewLife.XCode教程系列[2019版] 增删改查入门。...建立表格字段和索引,名字以及数据类型规范,推荐字段(时间,用户,IP) 实体类详解。数据类业务类,泛型基类,接口 功能设置。连接字符串,调试开关,SQL日志,慢日志,参数化,执行超时。...重载拦截,自增字段,Valid验证,实体模型(时间,用户,IP) 脏数据。如何产生,怎么利用 增量累加。高并发统计 事务处理。单表和多表,不同连接,多种写法 扩展属性。多表关联,Map映射 高级查询。...复杂条件,分页,自定义扩展FieldItem,查总记录数,查汇总统计 数据层缓存。Sql缓存,更新机制 实体缓存。全表整理缓存,更新机制 对象缓存。字典缓存,适用用户等数据较多场景。 百亿级性能。

1.2K10

初识ABP vNext(5):ABP扩展实体

扩展实体 路由整理 前言 上一篇实现了前端vue部分的用户登录和菜单权限控制,但是有一些问题需要解决,比如用户头像、用户介绍字段目前还没有,下面就来完善一下。...开始 因为用户实体是ABP模板自动生成的,其中的属性都预先定义好了,但是ABP是允许我们扩展模块实体的,我们可以通过扩展用户实体来增加用户头像和用户介绍字段。...扩展实体 ABP支持多种扩展实体的方式: 将所有扩展属性以json格式存储在同一个数据库字段中 将每个扩展属性存储在独立的数据库字段中 创建一个新的实体类映射到原有实体的同一个数据库表中 创建一个新的实体类映射到独立的数据库表中...,不然就算你实体中已经有了新字段,但接口依然获取不到。...查看数据库,AppUsers表已经生成这2个字段了: ? 目前还没做设置界面,我先手动给2个初始: ? 再次请求/api/identity/my-profile接口,已经返回了这2个扩展字段: ?

1.7K10

导入导出(实体对象百变魔君)

Json序列化 当下最常用的数据通信格式毋容置疑肯定是Json,实体对象可直接转Json作为接口返回。...Json作为最通用的数据传输格式(没有之一),ToJson直接扩展Object,有三个参数:是否换行缩进、是否写空、是否驼峰命名 ?...建立表格字段和索引,名字以及数据类型规范,推荐字段(时间,用户,IP) 实体类详解。数据类业务类,泛型基类,接口 功能设置。连接字符串,调试开关,SQL日志,慢日志,参数化,执行超时。...代码与配置文件设置,连接字符串局部设置 反向工程。自动建立数据库数据表 数据初始化。InitData写入初始化数据 高级增删改。...重载拦截,自增字段,Valid验证,实体模型(时间,用户,IP) 脏数据。如何产生,怎么利用 增量累加。高并发统计 事务处理。单表和多表,不同连接,多种写法 扩展属性。多表关联,Map映射 高级查询。

1.2K20

干货 | 论Elasticsearch数据建模的重要性

4.1 ES Mapping 设置 ? 4.2 ES Mapping 字段设置流程图 ?...4.3 ES 万能Mapping 模板参考 以下的索引 Mapping中,_source设置为false,同时各个字段的store根据需求设置了true和false。...url的doc_values设置为false,该字段url不用于聚合和排序操作。...宽表化处理,在查询阶段如果只需要“一”这部分时,需要进行结果去重处理(可以使用ES5.x的字段折叠特性,但无法准确获取分页总数,产品设计上需采用上拉加载分页方式) (3)Nested objects(嵌套文档...基本的原理是在terms的时候,对于多项取值,如果在另外的index或者type里已知主键id的情况下,某一字段有这些,可以直接嵌套查询。

2.7K20

TLS 1.3 Handshake Protocol (下)

如果 Client 无法使用提供的证书构造可接受的证书链,那么必须中止握手。...如果 CertificateRequest 消息包含非空的 "oid_filters" 扩展,则终端实体证书必须匹配 Client 识别的扩展 OID,如第 4.2.5 节中所述。...验证过程作为输入: 数字签名所涵盖的内容 在关联的证书消息中找到的最终实体证书中包含的公钥 在 CertificateVerify 消息的签名字段中收到的数字签名 如果验证失败,接收方必须通过...它可以是数据库查找键,也可以是自加密和自我验证的。 extensions: ticket 的一组扩展扩展格式在 4.2 节中定义的。Client 必须忽略无法识别的扩展。...如果 request_update 字段设置为 "update_requested",则接收方必须在发送其下一个应用数据记录之前发送自己的 KeyUpdate,其中 request_update 设置

1.7K50

高级查询(化繁为简、分页提升性能)

开源地址:https://github.com/NewLifeX/X (求star, 754+) 扩展查询 前文《[NewLife.XCode]实体类详解》中有讲到扩展查询,XCode生成实体类代码时,...高级表达式查询 仅靠一两个字段的简单查询,肯定无法满足各种业务要求,我们需要更强大的查询支持,特别是根据不同条件拼接不同语句。 ? ? 上面是两个非常典型的业务查询。...Meta.Count 的初始来自于数据库元数据索引表,里面有该表主键的总行数,取得该后如果小于100万再异步select count一次。...Field扩展 内嵌类_引用的字段是Field,它继承自FieldItem。 Field/FieldItem全部功能: Equal 等于,操作符== NotEqual 不等于,操作符!...多表子查询 XCode不支持多表Join关联,这在前面《扩展属性》中提到过。 扩展属性固然可以解决关联多表字段的问题,并且借助缓存性能还不错,但是需要同时在两张表上设置条件的时候,就行不通了。

1.2K20

RFC2616-HTTP1.1-Header Field Definitions(头字段规定部分—译文)

但是,除非用户代理是一个封闭的系统,不能与其他执行中的代理(rendering agents)交互,否则这个默认设置应该由用户配置。...14.9.6 Cache Control Extensions   可以通过使用一个或多个缓存扩展令牌来扩展Cache-Control头字段,每个令牌具有可选的分配。...它应该表示消息生成时日期和时间的最佳近似,除非实现无法生成合理准确的日期和时间。理论上,日期应该表示实体生成之前的时刻。在实践中,日期可以在不影响其语义的情况下,消息发起期间的任何时候生成。...服务器必须返回417错误,如果任何的“期望”都无法满足,或者有其他的客户端请求错误,一些4XX错误。   该头字段被定义为可扩展的语法,以用在未来可能的扩展中。...对于无法缓存或过时的响应,Vary字段向用户代理提供用于选择表示的标准。“*”表示缓存无法从后续请求的请求头中确定此响应是否合适。

1.5K30

Spring认证中国教育管理中心-Spring Data Neo4j教程四

提供一个全参数的构造函数 ——即使你不能或不想将你的实体建模为不可变,提供一个将实体的所有属性作为参数(包括可变属性)的构造函数仍然有价值,因为这允许对象映射以跳过属性填充以获得最佳性能。...在这种情况下,您无法预见返回的数据是什么样的,您更适合使用可变字段来处理关系。 6.3.4.Kotlin 支持 Spring Data 调整了 Kotlin 的细节以允许对象创建和变异。...此接口主要用作标记接口,以捕获要使用的类型并帮助您发现扩展此接口的接口。该CrudRepository接口为被管理的实体类提供了复杂的 CRUD 功能。...返回由给定 ID 标识的实体。 返回所有实体。 返回实体的数量。 删除给定的实体。 指示具有给定 ID 的实体是否存在。...或者,如果您不想扩展 Spring Data 接口,也可以使用@RepositoryDefinition. 扩展CrudRepository公开了一整套操作实体的方法。

1.5K20
领券