読み取りのみを行うビューがあります (書き込みはありません)。このビューには一意のキーがありません (イベント コンポジットではありません)。
ビューに触れずにNHibernateでこのビューをマップするにはどうすればよいですか? ビューに新しい列を追加して、一意の ID を生成したくありません。このビューをマップし、NHibernate 側で ID 列を生成する方法はありますか?
次のようなエンティティ クラスで GUID を生成できます。
public class MyViewClass
{
private Guid _id = new Guid();
public virtual Guid Id { get { return _id; } set { _id = value; } }
}
しかし、どうすればマッピングを機能させることができますか? 次のコードは機能しません。
public class MyViewClass: ClassMapping<MyViewClass>
{
public MyViewClass()
{
Mutable(false);
Id(x => x.Id, m => m.Generator(Generators.Guid));
}
}
ビューに Id 列があることを期待して、次をスローします。
System.Data.SqlClient.SqlException: Invalid column name 'Id'.
ところで、私は NHibernate 3.2 とコードによるマッピングを使用しています。