Skip to content

4 Dbmodels插件相关

nainaigu edited this page May 6, 2020 · 3 revisions

Dbmodels是配合AntData.Orm框架使用

如果你不用插件要手写代码 也完全ok的,只不过插件是为了追求更加高效的编程效率,避免做重复性的工作

插件支持的ide

如果你用visual studio的话请使用(支持windows)

如果你是用Rider的话(支持windows和mac平台)

安装插件完成后如何使用

前提条件:引用AntDataOrm框架,参考:https://github.com/yuzd/AntData.ORM

json文件的参数

名称 类型 说明
NamespaceName string 必填:设置生成代码的命名空间
BaseEntityClass string (选填)生成的每一个DTo继父类class名称
DataContextName string (选填)自定义生成的数据库汇总Entity的name( 如果不填会有默认值为db的名称+Entitys)
EntitySuffix string (选填)自定义生成的每张表对应class的后缀 例如统一加一个 "DTO"
AssociationPrefix string (选填)定义生成外键的字段名称的前缀 例如 “FK_”
AssociationAppendByFieldName bool (选填) 默认false,定义生成外键的字段名称是否根据增加 "By" + 他的字段名称
GenerateAssociations bool 默认false,是否生成外键
ConnectionString string 必填:db连接字符串
OutFileName string (必填)生成的cs文件名称
PerClassPerFile bool 每一个class生成一个独立的cs文件 如果这个为true就会忽略OutFileName参数值,默认为false
TableFilter string[] (选填) 指定要生成class的表,如果为空代表不限制
SetFkList string[] (选填)逻辑(非物理,不提倡物理建外键) 格式: A表名称,A表字段,B表名称,B表字段,外键关系(OneToOne,OneToMany,ManyToOne)
UsingList string[] (选填)设置Using
SetColumnTypeList string[] (选填)自定义设置属性的类型 格式为 table.filedName=xxxxxx 例如:"person.Gender=GenderEnum"
DateTimeDefaultValue string (选填)如果datetime类型是非空有默认值的 可以在这里设置默认值 默认为 DateTime.Now
  1. 新建一个 json 文件
  2. 按照上面的json格式编写
  3. mysql参考例子 sqlserver参考例子
  4. 然后在这个json文件点击右键 召唤插件

visual studio 如何使用dbmodels代码生成器截图

image

rider 如何使用dbmodels代码生成器截图

在rider下使用的插件要注意一下:在以上的json的参数里面新增以下参数:

字段 说明
Type 支持 mysql 和 sqlserver (sqlserver的话支持在后面指定版本号:sqlserver2000, sqlserver2005,sqlserver2008,sqlserver2012,sqlserver2017,如果不指定的话 sqlserver = sqlserver2008)
OutPutFolder 生成的代码保存在本机的哪个文件夹(可以使用相对于该json文件路径)

image

生成的代码结构解说

参考例子

特点和db的结构差不多

  • xxxEntity的文件(也就是上面json里面DataContextName定义)归并了所有的dbmodels的,差不多和db一样的概念
  • 每个table对应一个dbmodel
  • 生成的文件都是partial的 你可以新增一个cs文件去扩展它,这样就和代码生成器解耦啦!