2

我正在为我的 Id 表使用特定的约定,并且我想覆盖特定实体的 ID 的映射方式。在这种情况下,大多数实体应该是 Class+ID 形式的键(例如:EmployeeId、DepartmentId 等),但我想为几个实体使用特定属性。所以,我添加了一个默认的约定规则:

class MyPrimaryKeyConvention:IIdConvention{
    public void Apply(IIdentityInstance instance) {
        instance.Column(instance.EntityType.Name + "Id");
        instance.GeneratedBy.Assigned();
    }
}

然后,我想我可以通过执行以下操作来覆盖“特殊” EmployeeShortInfo 类的映射:

public class EmployeeShortInfoIdOverride: IAutoMappingOverride<Dtos.EmployeeShortInfo> {
    public void Override(AutoMapping<Dtos.EmployeeShortInfo> mapping) {
        mapping.Id(e => e.EmployeeId);
    }
}

不幸的是,fluent 会尝试使用 EmployeeShortInfoId 而不是使用 EmployeeId 属性。IAutoMappingOverride 不应该覆盖类的默认约定吗?

谢谢。

4

0 回答 0