Fluent NHibernate
で、私は任意のClassMap<T>
を持っています。どのプロパティ(もしあれば)がprimary key
に設定されているかを知りたいのですが。クラスマップからの主キーの検索
例:
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(p => p.StupidPrimaryKeyId).GeneratedBy.Identity().Column("StupidPrimaryKeyId");
}
}
...
//usage
MemberInfo primaryKeyMember = FindPrimaryKey(new PersonMap());
誰もがFindPrimaryKey
ためのメソッド本体がStupidPrimaryKeyId
を返すためにでなければならないものを私に伝えることができますか?
編集:私はデタッチエンティティがデータベースに存在していたかどうかを知りたかったので1/10/12
私はもともとのみ、主キー(知るためのように私の必要性に基づいて、これを望んでいました主キーメンバー、文字列ではありません)。私は、このコードの多くが既にコードベースに存在していたので、このパスを設定しました。
public virtual bool RecordExists(TRecord obj)
{
var exists = _session.Query<TRecord>().Where(r => r == obj).Any();
return exists == false;
}
なぜあなたのC#コードの中にPKの列名を取得する必要がありますか? – gdoron