2011-03-23 40 views
2

我有一個類的字符串屬性,我想將其映射到另一列的子字符串。如何將子字符串映射到具有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") 

不幸的是,其在一個查詢結果的子字符串:

不能使用在子查詢沒有投影的標準 。

回答

3

我順利地拿到了這樣的事情在我的解決方案的工作

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