Fab*_*ber 47 c# nhibernate where-in queryover
我会像这样创建一个QueryOver
SELECT *
FROM Table
WHERE Field IN (1,2,3,4,5)
Run Code Online (Sandbox Code Playgroud)
我尝试过Contains
方法,但我遇到了异常
"System.Exception:无法识别的方法调用:System.String:Boolean包含(System.String)"
在这里我的代码
var qOver = _HibSession.QueryOver<MyModel>(() => baseModel)
.JoinAlias(() => baseModel.Submodels, () => subModels)
.Where(() => subModels.ID.Contains(IDsSubModels))
.List<MyModel>();
Run Code Online (Sandbox Code Playgroud)
Fab*_*ber 61
我找到了解决方案!! :-)
var qOver = _HibSession.QueryOver<MyModel>(() => baseModel)
.JoinAlias(() => baseModel.Submodels, () => subModels)
.WhereRestrictionOn(() => subModels.ID).IsIn(IDsSubModels)
.List<MyModel>();
Run Code Online (Sandbox Code Playgroud)
Art*_*m G 49
你可以尝试这样的事情:
// if IDsSubModels - array of IDs
var qOver = _HibSession.QueryOver<MyModel>()
.Where(x => x.ID.IsIn(IDsSubModels))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您不需要加入
Arn*_*old 11
这工作,更优雅
var Strings = new List<string> { "string1", "string2" };
var value = _currentSession
.QueryOver<T>()
.Where(x => x.TProperty == value)
.And(Restrictions.On<T>(y=>y.TProperty).IsIn(Strings))
.OrderBy(x => x.TProperty).Desc.SingleOrDefault();
where T is a Class and TProperty is a property of T
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46457 次 |
最近记录: |