EFCore中,数据库表与实体属性进行映射时,有些字段不需要数据库存储,但实体需要属性展示,通常用EF字段的NotMapper属性进行装饰(有的版本未实现此功能),或者在OnModelCreating进行Ignore设置。
属性装饰时,若是实体基类中共有的属性,可在基类进行统一设置;但若基类是继承自其他类库,则不方便进行统一设置,如继承自Volo.Abp的聚合根AggregateRoot,要设置其中一个字段不映射,以及某些表某几个公共字段不需映射;OnModelCreating中Ignore设置需要做很多重复的工作。
类库NetCore.EFModel.ConfigBuilder,对某一个实体,可进行数据库表名配置,忽略的属性设置,支持属性装饰,多个属性同时设置;也可在DbContext中OnModelCreating方法统一设置多个忽略属性。nguet下载包zxsn.NetCore.EFModel.ConfigBuilder(目前1.0.1版本)。使用方法如下:
1、实体Mapper。可设置表名TableMapper,主键以及不映射的字段,同时可对单个字段进行属性设置DbNoMapper
2、DbContext中OnModelCreating方法通过程序集的进行统一配置。
ModelCreating方法设置参数:程序集属性,需要统一配置忽略的属性。