网页设计网站开发需要哪些知识,wordpress拖曳组件,wordpress建站论坛,贵阳网站托管NewLife.XCode是一个有10多年历史的开源数据中间件#xff0c;由新生命团队(2002~2019)开发完成并维护至今#xff0c;以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析#xff0c;蕴含多年开发经验于其中。开源地址#xff1a;https://github.com/… NewLife.XCode是一个有10多年历史的开源数据中间件由新生命团队(2002~2019)开发完成并维护至今以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析蕴含多年开发经验于其中。开源地址https://github.com/NewLifeX/X 求star, 620 回到目录数据模型文件数据模型文件是XCode数据库开发的中心曾经流行和支持的DB First和Entity First经过10多年优胜劣汰只剩下Model First。XCode的数据模型文件就是一个Model.xml名字可变同目录配套Build.tt用于在vs里调用XCode生成基于xml模型文件的多个实体类文件。从nuget安装NewLife.XCode时可以看到项目下多了一个Model.xml和Build.ttnfx项目才有netcore版本由于发布脚本的原因未能兼容。其中的Model.xml正是供我们进行数据建模的参考同时也是XCode内部Membership的模型文件。?xml version1.0 encodingutf-8?Tables Version9.6.6663.16294 NameSpaceXCode.Membership ConnNameMembership Output BaseClassEntity         xmlnshttp://www.newlifex.com/ModelSchema.xsd xmlns:xshttp://www.w3.org/2001/XMLSchema-instance xs:schemaLocationhttp://www.newlifex.com https://raw.githubusercontent.com/NewLifeX/X/master/XCode/ModelSchema.xsd Table NameUser Description用户 DbTypeSqlServer RenderGenEntitytrueColumnsColumn NameID DataTypeInt32  IdentityTrue PrimaryKeyTrue Description编号 /Column NameName DataTypeString MasterTrue NullableFalse Description名称。登录用户名 /Column NamePassword DataTypeString Description密码 /Column NameDisplayName DataTypeString Description昵称 /Column NameSex DataTypeInt32 Description性别。未知、男、女 TypeSexKinds /Column NameMail DataTypeString Description邮件 /Column NameMobile DataTypeString Description手机 /Column NameCode DataTypeString Description代码。身份证、员工编号等 /Column NameAvatar DataTypeString Length200 Description头像 /Column NameRoleID DataTypeInt32 Description角色。主要角色 /Column NameRoleIDs DataTypeString Length200 Description角色组。次要角色集合 /Column NameOnline DataTypeBoolean Description在线 /Column NameEnable DataTypeBoolean Description启用 /Column NameLogins DataTypeInt32 Description登录次数 /Column NameLastLogin DataTypeDateTime Description最后登录 /Column NameLastLoginIP DataTypeString Description最后登录IP /Column NameRegisterTime DataTypeDateTime Description注册时间 /Column NameRegisterIP DataTypeString Description注册IP //ColumnsIndexesIndex ColumnsName UniqueTrue /Index ColumnsRoleID //Indexes/TableTable NameRole Description角色 RenderGenEntitytrueColumnsColumn NameID DataTypeInt32 IdentityTrue PrimaryKeyTrue Description编号 /Column NameName DataTypeString MasterTrue NullableFalse Description名称 /Column NameIsSystem DataTypeBoolean Description系统。用于业务系统开发使用不受数据权限约束禁止修改名称或删除 /Column NameRemark DataTypeString Description说明 /Column NamePermission DataTypeString Length500 Description权限。对不同资源的权限逗号分隔每个资源的权限子项竖线分隔 /Column NameCreateUserID DataTypeInt32 Description创建用户 /Column NameCreateIP DataTypeString Description创建地址 /Column NameCreateTime DataTypeDateTime Description创建时间 /Column NameUpdateUserID DataTypeInt32 Description更新用户 /Column NameUpdateIP DataTypeString Description更新地址 /Column NameUpdateTime DataTypeDateTime Description更新时间 //ColumnsIndexesIndex ColumnsName UniqueTrue //Indexes/TableTable NameMenu Description菜单 BaseTypeEntityTree RenderGenEntitytrueColumnsColumn NameID DataTypeInt32 IdentityTrue PrimaryKeyTrue Description编号 /Column NameName DataTypeString MasterTrue NullableFalse Description名称 /Column NameDisplayName DataTypeString Description显示名 /Column NameFullName DataTypeString Length200 Description全名 /Column NameParentID DataTypeInt32 Description父编号 /Column NameUrl DataTypeString Length200 Description链接 /Column NameSort DataTypeInt32 Description排序 /Column NameIcon DataTypeString Description图标 /Column NameVisible DataTypeBoolean Description可见 /Column NameNecessary DataTypeBoolean Description必要。必要的菜单必须至少有角色拥有这些权限如果没有则自动授权给系统角色 /Column NamePermission DataTypeString Length200 Description权限子项。逗号分隔每个权限子项名值竖线分隔 /Column NameRemark DataTypeString Length200 Description备注 //ColumnsIndexesIndex ColumnsName /Index ColumnsParentID,Name UniqueTrue //Indexes/TableTable NameLog Description日志 ConnNameLog RenderGenEntitytrueColumnsColumn NameID DataTypeInt32 IdentityTrue PrimaryKeyTrue Description编号 /Column NameCategory DataTypeString Description类别 /Column NameAction DataTypeString Description操作 /Column NameLinkID DataTypeInt32 Description链接 /Column NameUserName DataTypeString Description用户名 /Column NameCreateUserID DataTypeInt32 Description用户编号 /Column NameCreateIP DataTypeString DescriptionIP地址 /Column NameCreateTime DataTypeDateTime Description时间 /Column NameRemark DataTypeString Length500 Description详细信息 //ColumnsIndexesIndex ColumnsCategory /Index ColumnsCreateUserID /Index ColumnsCreateTime //Indexes/TableTable NameUserOnline Description用户在线 ConnNameLogColumnsColumn NameID DataTypeInt32 IdentityTrue PrimaryKeyTrue Description编号 /Column NameUserID DataTypeInt32 Description用户 /Column NameName DataTypeString MasterTrue Description名称 /Column NameSessionID DataTypeString Description会话。Web的SessionID或Server的会话编号 /Column NameTimes DataTypeInt32 Description次数 /Column NamePage DataTypeString Description页面 /Column NameStatus DataTypeString Length200 Description状态 /Column NameOnlineTime DataTypeInt32 Description在线时间。本次在线总时间秒 /Column NameCreateIP DataTypeString Description创建地址 /Column NameCreateTime DataTypeDateTime Description创建时间 /Column NameUpdateTime DataTypeDateTime Description修改时间 //ColumnsIndexesIndex ColumnsUserID /Index ColumnsSessionID /Index ColumnsCreateTime //Indexes/TableTable NameVisitStat Description访问统计 ConnNameLogColumnsColumn NameID DataTypeInt32 IdentityTrue PrimaryKeyTrue Description编号 /Column NameLevel DataTypeInt32 Description层级 TypeXCode.Statistics.StatLevels /Column NameTime DataTypeDateTime Description时间 /Column NamePage DataTypeString NullableFalse Description页面 /Column NameTitle DataTypeString MasterTrue Description标题 /Column NameTimes DataTypeInt32 Description次数 /Column NameUsers DataTypeInt32 Description用户 /Column NameIPs DataTypeInt32 DescriptionIP /Column NameError DataTypeInt32 Description错误 /Column NameCost DataTypeInt32 Description耗时。毫秒 /Column NameMaxCost DataTypeInt32 Description最大耗时。毫秒 /Column NameCreateTime DataTypeDateTime Description创建时间 /Column NameUpdateTime DataTypeDateTime Description更新时间 /Column NameRemark DataTypeString Length500 Description详细信息 //ColumnsIndexesIndex ColumnsPage,Level,Time UniqueTrue /Index ColumnsLevel,Time //Indexes/Table/Tables真实项目开发中一般数据层类库项目为不同子模块划分目录每个目录有自己的Model.xmlBuild.tt负责本模块的模型维护已经实体类生成。头部属性解释Output输出目录NameSpace命名空间ConnName连接名对应app.config/web.config中connectionStrings下的nameBaseEntity基类默认Entity同一个子模块也可以共用自己的泛型基类EntityBaseTables中的这些属性对本模型文件所有Table有效各个Table上也可以指定这些属性以覆盖全局设置 Table.Name 就是生成的实体类类名如果实际表名不同可用TableName指定表名。Column.Name就是生成的实体类属性名如果实际字段名不同可用ColumnName指定字段名。 字符串长度Length默认50不建议小于50-1表示最大ntext其它字段不建议设置长度特别不建议给Double和Decimal设置精度 字段Column只需要DataType指定.Net类型即可反向工程会根据使用数据库的不同而映射到不同数据库类型。如果不喜欢XCode推荐的数据库类型可在Column中通过RawType指定原始数据库类型。Column支持Type指定枚举类型建议是带命名空间的全名。例如上面User表中Sex类型的字段就是枚举SexKinds 可以通过码神工具/建模工具从数据库中导出数据表对应的模型文件也可以编码通过DAL.Export导出模型文件魔方的系统管理数据库页面也可以导出模型文件 回到目录数据名字规范模型文件的Table名将会生成实体类类名Column字段名将会生成实体类属性名因此命名规范很重要。名称必须使用通俗易懂的英文单词全拼常用的缩略词如ID除外采用大驼峰命名每个单词首字母大写其它小写类型属性名符合.Net规范名称必须简洁明了不要加多余的前缀如表名前加tbl字段名也不要加表名前缀  不得使用SQL关键字或C#关键字作为表名或字段名  使用数据库常用类型如Int32和String大文本长度-1  给表和字段加上说明作为文件名以及生成代码的注释  每张表必须有唯一主键字段建议自增ID  主从表中从表加关联字段主表名主表主键名。XCode会识别为主从关系生成扩展属性  每张表设置好索引注意是否唯一。XCode会识别为索引生成扩展查询 回到目录数据类型规范模型文件设计要求开发者有一点数据库基础至少要能明确表、字段和索引的概念。然而要求又远比数据库要低得多因为咱们推崇极致简单的原则。类型数据库类型推荐备注Int32整数int强烈 优先String字符串nvarchar(50)强烈 默认变长50DateTime时间日期datetime强烈 不建议纯日期或时间Boolean布尔型bit强烈 MySql中建议tinyint替代枚举来实现布尔型Int64长整型long强烈 有可能超过21亿的整数选长整型Decimal十进制money慎用 高精度货币型时采用Double双精度double慎用 特别慎用避免浮点运算导致精度丢失 Int16short禁用 由Int32替代Bytetinyint禁用 由Int32替代 Singlesingle禁用 由Double替代                       回到目录常用字段推荐为了便于开发XCode默认优待以下字段      Column NameCreateUser DataTypeString Description创建者 /Column NameCreateUserID DataTypeInt32 Description创建者 /Column NameCreateTime DataTypeDateTime Description创建时间 /Column NameCreateIP DataTypeString Description创建地址 /Column NameUpdateUser DataTypeString Description更新者 /Column NameUpdateUserID DataTypeInt32 Description更新者 /Column NameUpdateTime DataTypeDateTime Description更新时间 /Column NameUpdateIP DataTypeString Description更新地址 / 时间组CreateTime/UpdateTime字段对应TimeModule在新增或更新时自动赋值IP组CreateIP/UpdateIP字段对应IPModule在Web新增或更新时自动赋值用户组CreateUser(ID)/UpdateUser(ID)字段对应UserModule在Web新增或更新时字段赋值一句话用了这些字段在Insert时自动给CreateAbc赋值在Update时自动给UpdateAbc赋值  回到目录系列教程NewLife.XCode教程系列[2019版]增删改查入门。快速展现用法代码配置连接字符串数据模型文件。建立表格字段和索引名字以及数据类型规范推荐字段时间用户IP实体类详解。数据类业务类泛型基类接口功能设置。连接字符串调试开关SQL日志慢日志参数化执行超时。代码与配置文件设置连接字符串局部设置反向工程。自动建立数据库数据表数据初始化。InitData写入初始化数据高级增删改。重载拦截自增字段Valid验证实体模型时间用户IP脏数据。如何产生怎么利用增量累加。高并发统计事务处理。单表和多表不同连接多种写法扩展属性。多表关联Map映射高级查询。复杂条件分页自定义扩展FieldItem查总记录数查汇总统计数据层缓存。Sql缓存更新机制实体缓存。全表整理缓存更新机制对象缓存。字典缓存适用用户等数据较多场景。百亿级性能。字段精炼索引完备合理查询充分利用缓存实体工厂。元数据通用处理程序角色权限。Membership导入导出。XmlJson二进制网络或文件分表分库。常见拆分逻辑高级统计。聚合统计分组统计批量写入。批量插入批量Upsert异步保存实体队列。写入级缓存提升性能。备份同步。备份数据恢复数据同步数据数据服务。提供RPC接口服务远程执行查询例如SQLite网络版大数据分析。ETL抽取调度计算处理结果持久化