1. 增加没有主键ID的抽象类,使能自义主键字段实现MODEL
    抽象类定义结构为

    1. /// <summary>
    2. /// 基类,不包含任何字段
    3. /// 如果有自定义主键名对象,请继承此类型
    4. /// </summary>
    5. [Serializable]
    6. public abstract class IModel : ICloneable

      

    1. /// <summary>
    2. /// 基类,包含Id, AddTime字段
    3. /// </summary>
    4. [Serializable]
    5. public abstract class IModelBase : IModel
    6. {
    7. /// <summary>
    8. /// 自增主键
    9. /// </summary>
    10. [Attribute.Field(PrimaryKey = true)]
    11. public int Id
    12. {
    13. get;
    14. set;
    15. }
    16. private DateTime addTime = DateTime.Now;
    17.  
    18. /// <summary>
    19. /// 添加时间
    20. /// </summary>
    21. public DateTime AddTime
    22. {
    23. get { return addTime; }
    24. set { addTime = value; }
    25. }
    26.  
    27. }

    通过此改动,使继承IModel能转化任意类型为CRL操作对象,因此老系统也能进行升级为CRL了
    对于自定义主键对象,需指定主键属性

    1. public class Test:CRL.IModel
    2. {
    3. [CRL.Attribute.Field(PrimaryKey=true)]//指定属性为主键
    4. public int Key2
    5. {
    6. get;set;
    7. }
    8. }

      

  2. 增加虚拟字段转换
    1. [CRL.Attribute.Field(VirtualField = "year(AddTime)")]
    2. public string Year
    3. {
    4. get;
    5. set;
    6. }
    7. public DateTime AddTime
    8. {
    9. get;set;
    10. }

    Year属性为虚拟字段,查询时会按year(AddTime)结果映射

  3. 增加属性覆盖
    1. public class ClassA : CRL.IModelBase
    2. {
    3. public string DataType
    4. {
    5. get;
    6. set;
    7. }
    8. }
    9. public class ClassB:ClassA
    10. {
    11. public new int DataType
    12. {
    13. get;
    14. set;
    15. }
    16. }

    ClassB继承ClassA,对象将按int DateType 映射

新DLL已打包在示例中,点击下载

CRL2.1更新的更多相关文章

  1. CRL2.3(ORM开发框架)源码github发布

    简介 CRL是一个面向对象的轻便型ORM业务框架 此框架追求的是使用简单,方便,因此设计为: 不需要代码生成器生成对象类,按标准方式写即可 依托lambda,实现语法解析转换为等效的SQL查询,完全以 ...

  2. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  3. 使用TSQL查询和更新 JSON 数据

    JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...

  4. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  5. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  6. Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新

    因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...

  7. iOS热更新-8种实现方式

    一.JSPatch 热更新时,从服务器拉去js脚本.理论上可以修改和新建所有的模块,但是不建议这样做. 建议 用来做紧急的小需求和 修复严重的线上bug. 二.lua脚本 比如: wax.热更新时,从 ...

  8. 【.net 深呼吸】程序集的热更新

    当一个程序集被加载使用的时候,出于数据的完整性和安全性考虑,程序集文件(在99.9998%的情况下是.dll文件)会被锁定,如果此时你想更新程序集(实际上是替换dll文件),是不可以操作的,这时你得把 ...

  9. ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(持续更新中...)

    开发工具:VS2015(2012以上)+SQL2008R2以上数据库  您可以有偿获取一份最新源码联系QQ:729994997 价格 666RMB  升级后界面效果如下: 任务调度系统界面 http: ...

随机推荐

  1. UVa 11584 - Partitioning by Palindromes(线性DP + 预处理)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  2. HDU 3292 【佩尔方程求解 && 矩阵快速幂】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=3292 No more tricks, Mr Nanguo Time Limit: 3000/1000 M ...

  3. 【转】java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener

    http://www.cnblogs.com/softidea/p/6064091.html Caused by: java.lang.NoClassDefFoundError: org/spring ...

  4. if __name__ == "__main__"如何正确理解

    粗略来讲,__name__是当前模块,当模块被直接运行时模块名为__main__.这句话的意思是,当模块被直接执行时,代码将运行,当模块是被导入时,代码不被运行 例如,执行one.py # file ...

  5. StringJoiner

    示例一 public class StringJoinerTest1 { public static void main(String[] args) { StringJoiner joiner = ...

  6. 论文笔记 | A Closer Look at Spatiotemporal Convolutions for Action Recognition

    ( 这篇博文为原创,如需转载本文请email我: leizhao.mail@qq.com, 并注明来源链接,THX!) 本文主要分享了一篇来自CVPR 2018的论文,A Closer Look at ...

  7. labview

    1.labview适用于测试测量领域,用于快速构建PC端上位机程序 2.例子: 我的电气参数测试仪. 上位机软件比想象的做的快了十几天... 学校的创新基金可以交差了,界面还是个人比较满意了.. 上图 ...

  8. Vue多个元素展开收起

    html: <div class="helpPages_main"> <div class="read" v-for="(item, ...

  9. css清除间隙

    .clear{clear:both;height:0;width:0;line-height:0;overflow:hidden;}

  10. What is a schema in a MySQL database?

    摘自:https://www.quora.com/What-is-a-schema-in-a-MySQL-database What is schema? In MySQL, physically, ...