EFDB 基本规范&知识

  

  public abstract class AccountRole //这是继承类型
    {
        [Key]
        public int ID { get; set; }
        public bool isDisabled { get; set; }
        public string email { get; set; }
        public string remark { get; set; }
        public string firstName { get; set; }
        public string lastName { get; set; }
        public string taskss { get; set; }

        [ForeignKey("account")]
        public int Accounts_id { get; set; }
        public virtual Account account { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public DateTimeOffset rowCreatedDT { get; set; }
        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        [ConcurrencyCheck]
        public byte[] rowVersion { get; set; }
        [ForeignKey("rowCreator")]
        public int? rowCreatorLoginAccounts_ID { get; set; }
        [ForeignKey("rowLastModifiedBy")]
        public int? rowLastModifiedByLoginAccounts_ID { get; set; }

        public virtual LoginAccount rowCreator { get; set; }
        public virtual LoginAccount rowLastModifiedBy { get; set; }
    }public class MemberRole : AccountRole //memberROle 继承 accountROle
    {
        public MemberRole()
        {
            businessResultComplex = new BusinessResultComplex { };
            monthlyTaskComplex = new MonthlyTaskComplex { };
        }
        public string investorOrIB { get; set; }
        public string MT4ID { get; set; }
        public string fullName { get; set; }
        public DateTime dateOfBirth { get; set; }
        public string alternativeEmail { get; set; }
        public string contactNumber { get; set; }
        public string gender { get; set; }
        public BeneficiaryComplex beneficiaryComplex { get; set; } //complex 类型
        public AddressComplex addressComplex { get; set; }
        public BankComplex bankComplex { get; set; }
        public BusinessResultComplex businessResultComplex { get; set; }
        public MonthlyTaskComplex monthlyTaskComplex { get; set; }
        public DateTimeOffset lastLoginDT { get; set; }  //dateTime原始类型
        public DateTime TTDate { get; set; } //date原始类型

        [ForeignKey("currentLevel")]
        public int Levels_ID { get; set; }

        public MemberMLMRelationTree MLMRelationTree { get; set; }
        public BankBalance bankBalance { get; set; }
        public Level currentLevel { get; set; }

        public List<HistoryLogin> historyLogins { get; set; }
        public List<HistoryBankTransaction> historyBankTransactions { get; set; }
        public List<HistoryLevel> historyLevels { get; set; }
        public List<Withdrawal> withdrawals { get; set; }
        public List<MemberContract> contracts { get; set; }
    }
  public class HistoryLogin : RowInfo
    {
        [Key]
        public int ID { get; set; }

        [ForeignKey("member")]
        public int Members_ID { get; set; }

        public MemberRole member { get; set; }
    }

EFDB是sql的结构, 大家都是类型(class), 但是有些时候会有大量重复, 所以会有继承(abstract)

原始类型有 string, int, datetime, date

在类型里可以有其他类型, 如果类型是complex就是一种集合(规范) , list(这是多对多或一对多的关系) , enum

时间: 2024-12-14 14:58:44

EFDB 基本规范&知识的相关文章

知识付费也迎来下半场,走向全面电商化?

前不久罗振宇停止了视频更新,随后又把他坚持1600天的事情放弃了,不直接发语音了:日前,罗振宇又召开了得到APP的首场知识发布会,全面向知识付费发起了进攻. 无独有偶,随后知乎高调上线了新的产品入口"知识市场",用户可以在此入口对知乎Live.知乎书店和付费咨询等所有付费产品直接购买,为了确保市场的健康发展,知乎还推出了一系列市场化机制:如七天无理由退款,评价功能再升级,流量补贴策略等等,这无疑宣告了知识付费电商化时代的到来,知乎也正在努力将自身塑造成知识电商时代的"天猫&q

运维经理的运维经验总结

1. 域名 从买域名开始,要买多个域名,50个甚至100个.分为主域名和推广域名(给推广链接用的).要从godaddy上买域名,因为这里的域名稳定,不会出现被攻击等事情.同时还要买域名保护,这样互联网用户ping这个域名就解析不到真实的服务器地址.同时域名解析的操作不要在godaddy上进行,要把解析的操作放在cloudflare上或者dnspod上进行操作,也可以放到zndns上(这个dns可以做到一个域名解析多个IP地址,根据就近原则,把最快的IP地址解析给用户.)也可以自己搭建dns服务器

程序员发展的三个维度:专业、展现与连接

曾经在和朋友的闲聊中,聊到了关于个人发展的问题.后来讨论出一个 PPC 理论,该理论粗略地把涉及个人发展的方向分成了三个维度,包括: 专业 Profession 展现 Presentation 连接 Connection 像程序员这样的专业技术人员,都倾向于在专业维度不断发展提升,而往往忽略了另外两个维度.如果三个维度综合发展的话,可能会得到 1 + 1 + 1 >> 3 的效果,即三个维度相加,远远大于 3. 专业 Profession 什么才算是 "专业" ?其实没有一

程序员的三个维度

曾经在和朋友的闲聊中,聊到了关于个人发展的问题.后来讨论出一个 PPC 理论,该理论粗略地把涉及个人发展的方向分成了三个维度,包括: 专业 Profession 展现 Presentation 连接 Connection 像程序员这样的专业技术人员,都倾向于在专业维度不断发展提升,而往往忽略了另外两个维度.如果三个维度综合发展的话,可能会得到 1 + 1 + 1 >> 3 的效果,即三个维度相加,远远大于 3. 专业(Profession) 什么才算是 "专业" ?其实没有

JAVAEE规范基础知识

JavaEE规范基础知识 本人博客文章网址:https://www.peretang.com/basic-knowledge-of-javaee-standard/ JavaEE简介 JavaEE,Java平台企业版,其提供了一个用于开发Web应用和企业应用的标准平台/规范. 意味着,所有d的JavaEE服务器厂商提供的JavaEE 容器/服务器 必然 包含/支持 JavaEE所有规范的实现.使用标准JavaEE规范开发并搭配JavaEE 容器/服务器 可令开发人员专注于业务层面上,而不需要分心

JMeter工具基础知识篇-工程目录结构及命名规范

转载于金阳光测试 背景说明:我们在开展自动化或者性能测试的时候,往往具有随意性,打开JMeter工具,生成一个脚本文件,参数化配置后,然后连同数据文件一起,放在一个大目录下,然后打包一起执行.想想这样会存在什么问题: 1.一旦养成随意性的习惯,很难改变,随意建目录,随意命名,逐渐让自己沦为具有随意性操作的小作坊式自动化测试人员,所以总觉得自己的知识库是那么的乱乱乱: 2.一个自动化项目规模小的时候,随意性导致的恶习还体现不出危害性,但是一旦脚本和数据文件增多,变更频率增大后,连自己写的东西估计都

Shell基础知识和编程规范

一,Shell环境查看 1.1 查看系统Shell支持情况 [[email protected] ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin 1.2 查看当前系统默认的Shell 方法一 [[email protected] ~]# echo $SHELL /bin/bash 方法二 [[email protected] ~]# grep root

Oracle知识分类之常见规范

命名规范 变量规范 1.入参,统一以I_前缀开头,且不能省略IN 2.出参,统一以O_前缀开头 3.局部变量,统一以V_前缀开头 4.常量,统一以CN_前缀开头 5.游标,统一以CUR_前缀开头 组成规范 数据库中的各个名称必须以字母开头,含字母.数字.下划线,严禁以SYS开头,语义需明确. 长度规范 表名.字段名.过程名.方法名.触发器名.序列名,同义词名.视图名.等Oralce对象标识符长度不能超过30个字符 游标规范 1.如果要查询的数据为一列表,需要将游标作为返回参数 2.在打开游标前,

C++必备基础知识和编程规范

C语言是面向过程的程序设计,强调程序的执行顺序,自上而下,而C++是面向对象的程序设计,将程序看做多个对象组成,每个对象有自己的属性(变量)和行为(函数). 2.属性是描述对象特征的数据,行为是对象能进行的操作,如英雄联盟里每一个英雄都有自己的属性(生命值,法力值,防御力,攻击力)和行为(普通攻击,施放技能QWER). C++编程规范: 类名第一个单词大写,数据成员和变量小写: 成员函数第二个单词首字母大写: 成员函数类外定义,类内声明: Set和构造函数的参数与数据同名,用this访问: 一.