を照会これは、フォローアップがBetter DateTime? or use default(DateTime) for NULL?DateTimeを処理していますか? NHibernateのに/ LINQは
私は別の例ではなく、他の質問の一つでDateTime?
で動作する単純なクエリを実装しようとした質問です。私の場合は
私はpublic virtual DateTime? Expiration
プロパティが
<property name="Expiration" not-null="false" type="DateTime" />
としてマッピングされてきた今、私のLINQクエリは、次の
return (from product in session.Query<Product>()
where
!product.Hidden &&
(product.Expiration != null ||
(product.Expiration.Value - DateTime.Now).TotalDays < 5 && (product.Expiration.Value - DateTime.Now).TotalDays >= 0)
select product).ToList();
クエリは述べています:隠されないと5日に失効されていないすべての製品を選びます(< 5期限切れの製品を確認して2番目の小切手を追加する必要があります)
ANTLRから例外があります:
'Antlr.Runtime.NoViableAltException'. [.Where(NHibernate.Linq.NhQueryable`1[Model.Product], Quote((product,) => (AndAlso(Not(product.Hidden), OrElse(DateTime.op_Inequality(product.Expiration, NULL), AndAlso(LessThan(DateTime.op_Subtraction(product.Expiration.Value, p2).TotalDays, p3), GreaterThanOrEqual(DateTime.op_Subtraction(product.Expiration.Value, p4).TotalDays, p5)))))),)]
どのようにDateTimeを処理しますか? NHibernate 3.0とLINQで?
Expiration!= nullが私の必要とするものと反対です(期限切れに設定されていない製品を選択してください)ので、気にしないでください:)私の結果には影響しません –