流畅的NHibernate HasMany,其中source是逗号分隔的ID字符串

时间:2011-04-22 11:12:24

标签: fluent-nhibernate nhibernate-mapping

我试图在尝试进行这种映射时试图将我的脑袋包裹在流畅的nHibernate中:

public class ClassA : Entity
{
   public virtual string SomeField { get; set; }
}

public class ClassB : Entity
{
   public virtual string ClassAIds { get; set; }
   public virtual IList<ClassA> ClassAList { get; set; }
}

其中Entity基本上确保两个类都将Id字段作为其主数据库密钥。

数据库看起来像:

 table ClassA:
   int Id,
   varchar(25) SomeField


 table ClassB:
   int Id,
   varchar(50) ClassAIds

我正在尝试编写一些映射,以便将ClassB实体填充到ClassAList中。是否有可能有类似的东西:

public void Override(AutoMapping<ClassB> mapping)
{  
   mapping.HasMany(x => x.ClassAIds.Split(new char[] { ',' }).Select(i => int.Parse(i)).ToList()).KeyColumn("Id");
}

我真的不明白如何传递目标类类型,如果有可能实现这一点。

1 个答案:

答案 0 :(得分:0)

我认为你不能做你所要求的。我认为你最好的选择是将它映射到数据库中,并处理映射之外的ClassAList集合的加载。我会设置你的自动化以忽略该集合。从数据库的角度来看,这并不是处理关系的好方法。