Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nhibernate查询覆盖枚举标志_Nhibernate_Queryover - Fatal编程技术网

Nhibernate查询覆盖枚举标志

Nhibernate查询覆盖枚举标志,nhibernate,queryover,Nhibernate,Queryover,正在尝试使用QueryOver和标记的枚举查询。这在Nhibernate中起作用。Linq: var results = repo.Query() .Where(x => (x.Classification & LineItemClassification.Shipping) == LineItemClassification.Shipping); 此抛出无法使用QueryOver从(Convert(x.Classification)&2)确定成员: var results

正在尝试使用QueryOver和标记的枚举查询。这在Nhibernate中起作用。Linq:

var results = repo.Query()
  .Where(x => (x.Classification & LineItemClassification.Shipping) == LineItemClassification.Shipping);
此抛出
无法使用QueryOver从(Convert(x.Classification)&2)
确定成员:

 var results = repo.QueryOver()
   .Where(x => (x.Classification & LineItemClassification.Shipping) == LineItemClassification.Shipping);
有什么想法吗?建议

枚举:

映射:

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

我今天遇到了类似的问题,最后做了一个SQL投影。这并不理想,因为它使我们远离了使用QueryOver API获得的类型安全性,但它是有效的。下面是我代码的相关部分

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

希望这能有所帮助。

将x.分类转换为int有效吗?找到答案了吗?我也有类似的情况,但我有完全相同的问题。你怎么解决这个问题?
.QueryOver<ProjectActivity>()
.Where(Expression.Gt(Projections.SqlProjection(String.Format("({{alias}}.ProjectActivityTypeId & {0}) as ProjectActivityTypeId", (int)type), null, null), 0))