使用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));