Fluent NHibernate を使用して、読み取り専用プロパティを Sql Server の計算列にマップしたいと考えています。プロパティは、別のプロパティの部分文字列です。これを行うのは、部分文字列をインデックス可能にして、検索パフォーマンスを向上させるためです。しかし、マッピングでフォーミュラ関数を使用すると、プロパティはデータベースの計算列にマップされませんが、クエリを使用すると計算されます。
Class Person{
public virtual string name {get; set;}
public virtual string subName {get; set;}
}
Class PersonMap : ClassMap<Person>{
Map(p => p.name);
Map(p => p.subName).Generated.Always().Formula("substring(name, 0, 5)");
}