我不是100%確定這將實際上工作。但它可能值得一試。假設你有ClassA和ClassB。 ClassA應該以您描述的方式引用ClassB。然後你可以添加一個屬性到ClassB,該屬性應該包含LEFT sql語句的結果。現在不要稱它爲BKey。然後,ClassB將如下所示:
public class ClassB {
public virtual string BKey { get; set; }
//Other properties
}
然後,當您映射ClassB時,可以將公式映射到屬性BKey。這看起來像這樣:
Map(x => x.BKey).Formula("(SELECT LEFT(b.[[columnname]], 12) FROM TableB as b WHERE b.Id = Id)");
這將採取該sql查詢的結果並放在屬性BKey中。然後,當你地圖ClassA的是參考你做這樣的事情:
Reference(x => x.ClassB).PropertyRef(x => x.BKey).Column("[[TableAColumnName]]");
同樣,我不知道這會的工作,我沒有嘗試過這樣的事情我自己。