我创建了一个提供可重用用户管理功能的通用用户存储库基类。
public class UserRepository<TUser> where TUser : new, IUser
{
}
我有一个名为 UserImpl 的 IUser 的具体实现和相应的映射class UserImplMap : ClassMap<UserImpl>
(它们都在同一个命名空间和程序集中)。我使用 AddFromAssemblyOf 添加映射。我也用它来创建/生成模式。
到目前为止一切顺利,事情按预期工作。
现在,在另一个项目中,我需要在 IUser 实现类中添加一些额外的属性,所以我实现了一个新的class UserImplEx : UserImpl
. 此类具有我需要的其他属性。另外,我创建了一个新映射class UserImplExMap : SubclassMap<UserImplEx>
现在,当我使用这种方法创建模式时,我得到两个表,一个用于 UserImpl,一个用于 UserImplEx。
是否可以以某种方式配置/编码 Fluent 映射,以便 UserImplEx 的所有属性(自身,加上继承的)都映射到单个表 UserImplEx 中,而不是拆分为两个表?
或者,如果我在 中提供完整映射UserImplExMap : ClassMap<UserImplEx>
,那么我确实会根据需要获得架构,但我也会获得 UserImpl 的附加表(因为相应的映射存在于 UserRepository 程序集中)。如果我遵循这种方法,有没有办法告诉 AddFromAssemblyOf 排除特定的映射类?