6

QueryOver とフラグ付きの列挙クエリを使用しようとしています。これは Nhibernate.Linq で機能します。

var results = repo.Query()
  .Where(x => (x.Classification & LineItemClassification.Shipping) == LineItemClassification.Shipping);

これはCould not determine member from (Convert(x.Classification) & 2)、QueryOver を使用してスローします。

 var results = repo.QueryOver()
   .Where(x => (x.Classification & LineItemClassification.Shipping) == LineItemClassification.Shipping);

何か案は?提案?

列挙:

[Flags]
public enum LineItemClassification
{
        Foo,
        Widget,
        Shipping
}

マッピング:

Map(x => x.Classification)
  .CustomType<LineItemClassification>();
4

1 に答える 1

3

私は今日同様の問題に遭遇し、SQLプロジェクションを実行することになりました。QueryOver APIで得られる型安全性から離れてしまうため、理想的ではありませんが、機能します。私のコードの関連部分は次のとおりです。

.QueryOver<ProjectActivity>()
.Where(Expression.Gt(Projections.SqlProjection(String.Format("({{alias}}.ProjectActivityTypeId & {0}) as ProjectActivityTypeId", (int)type), null, null), 0))

お役に立てば幸いです。

于 2011-05-03T22:37:21.060 に答える