Csharp/C#教程:是否可以创建一个通用的Session.QueryOver ?分享


是否可以创建一个通用的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

(0)
上一篇 2022年1月18日
下一篇 2022年1月18日

精彩推荐