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方法設置參數:程序集屬性,需要統一配置忽略的屬性。