私は Nhibernate を使用しています。これは、複合キーのリストを使用して一連のレコードを取得するためのコードによるマッピングです。次のような複合キーを使用しています。
public class PersonAccountKey : IKey
{
public virtual string PersonId { get; set; }
public virtual string AccountNo{ get; set; }
public override bool Equals(object obj)
{
if (obj == null)
return false;
var t = obj as PersonKey;
if (t == null)
return false;
if (PersonId == t.PersonId && AccountNo == t.AccountNo)
return true;
return false;
}
public override int GetHashCode()
{
return (PersonId).GetHashCode() + "|" + (AccountNo).GetHashCode();
}
}
PersonAccountKey オブジェクトのリストを使用して、NHibernate に単一のクエリをデータベースに送信させようとしています。クエリは次のようになると思います。
Select PersonId, AccountNo, AccountNickName
From PersonAccount
Where (PersonId = '11' and AccountNo = '10001111')
or (PersonId = '22' and AccountNo = '10001150')
これを達成する方法がわかりませんか?複合キーで Criteria を使用しようとしましたが、一緒に使用するためのものではなかったと思います。私は今Linq 2 NHibernateを試していますが、実際にはどこにも行きません。
理想的には、 などのキーの IEnumerable を取るメソッドが欲しいのですSession.Get<T>(IEnumerable<object>)
が、これは私の検索では存在しません。
これは NHibernate ですぐに使用できますか?
乾杯。