1
我正在研究一种方法,该方法查询泛型类型并获取该类型的列表。但是,我希望能够为此添加Where()
,所以我希望查询能够通过任何扩展或实现某个类/接口的类型进行查询。NHibernate queryover扩展类的泛型类型
public static List<T> getList<T>() where T : class
{
List<T> clientList = null;
using (ISession session =
NHibernateSessionFactoryManager.Factory.OpenSession())
{
clientList = new List<T>(session.QueryOver<T>()
//.Where(x => !x.IsDisabled) - won't work
//.Where(x => !x.IsDeleted) - won't work
.List());
}
return clientList;
}
我想是这样的:
public static List<T:someClass> getList<T:someClass>() where T:someClass
{
List<T> clientList = null;
using (ISession session =
NHibernateSessionFactoryManager.Factory.OpenSession())
{
clientList = new List<T>(session.QueryOver<T>()
.Where(x => !x.IsDisabled)
.Where(x => !x.IsDeleted)
.List());
}
return clientList;
}
和someClass
和它的孩子们将有IsDisabled, IsDeleted
字段,以便queryOver不会抱怨他们。
目前该方法具有红色线条随处可见,如果您使用的约束正确的语法
我明白了,我试图用T:someInterface。 –