私は読んでいるだけの(書き込みなし)という見解を持っています。このビューには、イベントコンポジットではなく一意のキーはありません。NHibernateでID列のないビューをマップする方法は?
これで、ビューに触れることなくNHibernateでこのビューをどのようにマップできますか?私は私に一意のアイデンティティを生成するためにビューに新しい列を追加したくありません。このビューをマップし、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とマッピングを使用しています。
を更新/挿入したいいけない場合、私はまったくそれをマップwouldntの'GetHashCode'と' Equals'をオーバーライドして、基本実装を提供するだけですか? – lbergnehr
私は弾丸を噛んで、 'newid()をIdとして追加する列を私のビューに追加します。 – Rippo
@seldon:複合キーは何からですか?データベース列?私がユニークなキーとして使用できるデータベース列からの実際の合成キーはありません。また、複合キーのMyViewClassで定義したプロパティIDを使用することはできません。これは、データベース内のこの列を探しています(存在しません)。だからあなたの解決策について少し詳しく教えてもらえますか? tnx:> – kaptan