NHibernate 查询扩展 class 的泛型类型
NHibernate queryover generic type that extends a class
我正在研究一种查询泛型类型并获取该类型列表的方法。但是,我希望能够向其中添加 Where()
,所以我希望查询能够查询扩展或实现某个 class/interface.
的任何类型
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 不会抱怨它们。
目前该方法到处都是红线
如果您对约束使用正确的语法,看起来不错:
public static List<T> getList<T>() where T : someClass
我正在研究一种查询泛型类型并获取该类型列表的方法。但是,我希望能够向其中添加 Where()
,所以我希望查询能够查询扩展或实现某个 class/interface.
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 不会抱怨它们。
目前该方法到处都是红线
如果您对约束使用正确的语法,看起来不错:
public static List<T> getList<T>() where T : someClass