3

我正在处理一个具有锁定模式的遗留数据库。我面临的问题是,许多表都是以已知/固定/硬编码的实体类型 Id 值为键的,而不是具有列值。这意味着我不能使用普通的 References 构造。

对于具有 ENTITY_TYPEID 的表,我可以这样做:

public class EntityMap : ClassMap<Entity>
{
   public EntityMap()
   {
      References(x => x.Type)
         .Columns("ENTITY_SECTION","ENTITY_TYPEID");
   }
}

它愉快地填充了 Entity.Type。

对于固定/已知/硬编码类型的表,我需要映射到硬编码值而不是 ENTITY_TYPE 列,因此在代码中解释:

public class EntityXMap : ClassMap<EntityX>
{
   public EntityXMap(int entityType)
   {
      References(x => x.Type)
         .Columns("ENTITY_SECTION", "ENTITY_TYPE = 123" );
   }
}

HasMany() 有一个 Where() 构造,我可以在这种情况下使用它......

任何想法如何在这里实现类似的东西?

4

1 回答 1

0

也许矫枉过正,但你可以试试

// add to config
var typemap = new TypeMap();
typemap.Id(x => x.Section, "ENTITY_SECTION");
typemap.Where("ENTITY_TYPE = 123");
typemap.EntityName("Type for EntityX");

References(x => x.Type)
   .Column("ENTITY_SECTION")
   .EntityName("Type for EntityX");
于 2012-06-11T08:52:03.623 回答