如何使用Fluent Nhibernate映射覆盖将子字符串映射到属性?

时间:2011-03-23 20:53:53

标签: c# .net fluent-nhibernate

我在类上有一个字符串属性,我想映射到另一列的子字符串。

让我们说这是我的班级:

public class MyClass
{
  public virtual string PartNumber { get; set; }

  public virtual string PartNumberPortion { get; set; }
}

这是我的MappingOverride:

public void Override(AutoMapping<MyClass> mapping)
{
   mapping.Map(x => x.PartNumberPortion, "PartNumber").Formula("SUBSTRING(4,20, PartNumber)");
}

.Formula()片段不像我希望的那样工作。是否可以将字段映射到另一个字段的子字符串?

仅供参考,如果我可以运行此查询,我不需要这样做:

PartNumber.Substring(3).Contains("12345")

不幸的是,在查询中使用Substring会导致:

  

无法在条件上使用子查询   没有投射。

1 个答案:

答案 0 :(得分:3)

我成功地在我的解决方案中使用了这样的东西

public override(AutoMapping<MyClass> mapping) 
{
    mapping.Map(x=>x.PartNumberPortion).Formula("SUBSTRING(PartNumber, 4, 20)");
}