-
Notifications
You must be signed in to change notification settings - Fork 119
4 Dbmodels插件相关
nainaigu edited this page May 6, 2020
·
3 revisions
如果你不用插件要手写代码 也完全ok的,只不过插件是为了追求更加高效的编程效率,避免做重复性的工作
如果你用visual studio的话请使用(支持windows)
- vs2019及以上-版本 或者 在vs里面搜索 AntDataGen进行安装
- vs2019以下版本 或者 在vs里面搜索 AntDataVS进行安装
如果你是用Rider的话(支持windows和mac平台)
- https://plugins.jetbrains.com/plugin/14033
- 或者在plugins搜索 ormcodegen 进行安装
前提条件:引用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 |
- 新建一个 json 文件
- 按照上面的json格式编写
- mysql参考例子 sqlserver参考例子
- 然后在这个json文件点击右键 召唤插件
在rider下使用的插件要注意一下:在以上的json的参数里面新增以下参数:
字段 | 说明 |
---|---|
Type | 支持 mysql 和 sqlserver (sqlserver的话支持在后面指定版本号:sqlserver2000, sqlserver2005,sqlserver2008,sqlserver2012,sqlserver2017,如果不指定的话 sqlserver = sqlserver2008) |
OutPutFolder | 生成的代码保存在本机的哪个文件夹(可以使用相对于该json文件路径) |
特点和db的结构差不多
- xxxEntity的文件(也就是上面json里面DataContextName定义)归并了所有的dbmodels的,差不多和db一样的概念
- 每个table对应一个dbmodel
- 生成的文件都是partial的 你可以新增一个cs文件去扩展它,这样就和代码生成器解耦啦!