首先在我的本地数据库已经有很多表了,表中也有一大堆的数据,这时候我要在ABP中添加这些表的实体类(这里我通过动软代码生成器生成实体类,我也是第一次使用这个工具):
第一步:下载动软代码生成器:http://www.maticsoft.com/download.aspx
第二步:下载完成后,解压压缩包,双击msi文件进行安装
第三步:安装完成后,打开软件,鼠标右击服务器,添加服务器,根据自身数据库类型选择,我这里选择的是SQL Server,我连接的是自己本地的数据库,所有在服务器名称中填的是(local),注意这里一定要加括号,其他的保持默认即可,然后点击确定(注意:我安装的SQL Server 是2017的,所以会有弹窗弹出提示不是选择的服务器类型,这个弹窗不需要理会,照常添加就行,不影响的)。添加完成后,等待几秒中,等数据库中的所有表都加载完成后,就能在左边看到你本地的数据库了
第四步:定义实体类的模板Entity.cmt,鼠标右击右边的代码模板---新建--模板,将新建模板命名为:Entity.cmt,然后鼠标右击Entity.cmt---编辑查看,写入如下代码后保存
<#@ template language="c#" HostSpecific="True" #> <#@ output extension= ".cs" #> <# TableHost host = (TableHost)(Host); host.Fieldlist.Sort(CodeCommon.CompareByintOrder); #> using System; using Abp.Domain.Entities; namespace Noah.ChargeStation.Entities<# if( host.Folder.Length > 0) {#>.<#= host.Folder #><# } #> { <# if( host.TableDescription.Length > 0) {#> //<#= host.TableDescription #> <# } #> public class <#= host.GetModelClass(host.TableName) #>:Entity { <# foreach (ColumnInfo c in host.Fieldlist) { if(c.ColumnName!="Id") { #>/// <summary> /// <#= string.IsNullOrEmpty(c.Description) ? c.ColumnName : c.Description #> /// </summary> public virtual <#= CodeCommon.DbTypeToCS(c.TypeName) #><# if(c.Nullable) { #><#if(CodeCommon.isValueType(CodeCommon.DbTypeToCS(c.TypeName ))){ #>?<# }#><# }#> <#= c.ColumnName #> { get; set; } <# }} #> public <#= host.GetModelClass(host.TableName) #>() { } } }
第五步:选择一个数据库,然后右击---模板代码批量生成---选择好后,点击导出
第六步:导出成功后,就能在输出路径下看到一个名为Entity的文件夹,里面就是所有输出的实体类代码,然后在VS中,在Core项目下,创建一个Entitys的文件夹专门放置实体类,并把刚刚生成的cs代码添加到该文件夹下,到此为止,我们的数据库表的实体类就完全生成了