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

C# 如何使用Fluent Nhibernate映射覆盖将子字符串映射到属性?,c#,.net,fluent-nhibernate,C#,.net,Fluent Nhibernate,我在一个类上有一个string属性,我想将它映射到另一列的子字符串 假设这是我的班级: public class MyClass { public virtual string PartNumber { get; set; } public virtual string PartNumberPortion { get; set; } } 这是我的MappingOverride: public void Override(AutoMapping<MyClass> mappi

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

假设这是我的班级:

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)");
}
不幸的是,在查询中使用子字符串会导致:

无法对条件使用子查询 没有投影


我成功地在我的解决方案中实现了类似的功能

public override(AutoMapping<MyClass> mapping) 
{
    mapping.Map(x=>x.PartNumberPortion).Formula("SUBSTRING(PartNumber, 4, 20)");
}
公共覆盖(自动映射)
{
Map(x=>x.partnumberport.Formula(“子字符串(PartNumber,4,20)”);
}
public override(AutoMapping<MyClass> mapping) 
{
    mapping.Map(x=>x.PartNumberPortion).Formula("SUBSTRING(PartNumber, 4, 20)");
}