使用linq或query over查询子类的NHibernate查询

使用linq或query over查询子类的NHibernate查询,nhibernate,linq-to-nhibernate,Nhibernate,Linq To Nhibernate,我们有以下“通用”参数框架 public class EntityWithSettings { public IList<Parameter> Parameters { get; } } public class Parameter { public string Name { get; set; } public string ValueAsString { get; set; } } public class IntegerParameter : P

我们有以下“通用”参数框架

public class EntityWithSettings
{
    public IList<Parameter> Parameters { get; }
}

public class Parameter 
{
    public string Name { get; set; }
    public string ValueAsString { get; set; }
}

public class IntegerParameter : Parameter
{
    public int Value { get; set; } // Provides ValueAsString
}
当然,上面的代码是不正确的,但是我怎样才能完成类似的事情呢

谢谢使用。类似于(未经测试):

QueryOver()
.JoinQueryOver(es=>es.Parameters)
其中(p=>p是整数参数&&p.Name==“SomeName”)
.选择(p=>p.Value);
实际上,除非您对设置的
实体有限制,否则您只需对
进行常规的
查询

怎么样

var values = es.SelectMany(e => 
                e.Parameters
                 .Where(p => p.Name == "SomeName")
                 .OfType<IntegerParameter>()
                 .Select(p => p.Value));
var values=es.SelectMany(e=>
e、 参数
.Where(p=>p.Name==“SomeName”)
第()类
.选择(p=>p.Value));
QueryOver<EntityWithSettings>()
   .JoinQueryOver(es=> es.Parameters)
   .Where(p => p is IntegerParameter && p.Name == "SomeName")
   .Select(p=> p.Value);
var values = es.SelectMany(e => 
                e.Parameters
                 .Where(p => p.Name == "SomeName")
                 .OfType<IntegerParameter>()
                 .Select(p => p.Value));