クラスがあります
public class Account {
public DateTime? StartDate {get;set;}
public DateTime? EndDate {get;set;}
public bool IsActive {get;set;}
}
IsActiveプロパティは、次の式として定義されます。
.Formula(" StartDate < GETDATE() and (EndDate is NULL or EndDate > GetDate())")
ただし、QueryOverを使用してIsActive == trueであるすべてのアカウントにクエリを実行すると、NHibernateがSQLを実行できないというエラーが発生します。
NHibernateが生成するSQLには
...other criterias...
and this_.StartDate < GETDATE()
and (this_.EndDate is NULL
or this_.EndDate > GetDate()) = 1
数式を正しく定義するにはどうすればよいですか。
フォーミュラはこれを行う上で正しい方法ですか、それともまったく異なる方法がありますか
アップデート :
- 基盤となるデータベースを変更せずにこれを行う方法はありますか
ありがとう