是否可以创建一个通用的Session.QueryOver ?
出于好奇,可以使用NHibernate 3做这样的事情吗?
public IQueryable FindAll() { return Session.QueryOver().List().AsQueryable(); }
我得到一个编译错误,说像……
类型T必须是引用类型才能将其用作参数T.
我想知道我是否可以创建一个Session.QueryOver的扩展方法来处理generics类型。
我可以用类似的东西替换它
return Session.CreateCriteria(typeof (T)).List().AsQueryable();
但是热衷于使用查询api的function。 有任何想法吗? 也许缺少明显的东西!
你错过了对T
的限制:
public IQueryable FindAll () where T : class { return Session.QueryOver ().List().AsQueryable(); }
where T : class
定义T
必须是引用类型。 (由于需要编译错误,因此QueryOver
仅限于引用类型)。 如果类型参数应用了约束,则使用此方法及其自身的generics参数的任何generics方法都必须应用类似的约束。
有关generics类型参数约束的完整概述,请参阅msdn 。
上述就是C#学习教程:是否可以创建一个通用的Session.QueryOver ?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1033867.html