C# 使用泛型类型变量进行NHibernate查询
如何使用变量作为调用NHibernate查询的类型?我的代码看起来(简化)如下:C# 使用泛型类型变量进行NHibernate查询,c#,sql-server,nhibernate,asp.net-core-2.0,C#,Sql Server,Nhibernate,Asp.net Core 2.0,如何使用变量作为调用NHibernate查询的类型?我的代码看起来(简化)如下: public string MyFunction() { var myVar = typeof(MyModel); var myVar2 = ExecQuery<myVar>(); } private List<T> ExecQuery<T>() { var result = sessionService.GetDefaultSession()
public string MyFunction()
{
var myVar = typeof(MyModel);
var myVar2 = ExecQuery<myVar>();
}
private List<T> ExecQuery<T>()
{
var result = sessionService.GetDefaultSession()
.Query<T>()
.ToList();
return result;
}
以及映射:
public class MyModelMapping : ClassMapping<MyModel>
{
public MyModelMapping()
{
Id(a => a.Id, b => b.Generator(Generators.Identity));
Property(a => a.Name, b =>
{
b.NotNullable(true);
});
}
}
公共类MyModelMapping:ClassMapping
{
公共MyModelMapping()
{
Id(a=>a.Id,b=>b.Generator(Generators.Identity));
属性(a=>a.Name,b=>
{
b、 不可为空(true);
});
}
}
我得到一个错误:myVar
是一个变量,但它的用法与类型类似
有什么想法吗?谢谢:)试着像这样传递类型
public string MyFunction()
{
var myVar2 = ExecQuery<MyModel>();
}
公共字符串MyFunction()
{
var myVar2=ExecQuery();
}
如果您实际尝试使用运行时已知的类型调用ExecQuery
,请查看此答案谢谢!我知道这种方法,但在我的条件下,它必须是变量,以ExecQuery
的形式给出,这意味着@Thiery V可能是重复的,但我现在不知道如何解决这个问题……你能帮我吗?
public string MyFunction()
{
var myVar2 = ExecQuery<MyModel>();
}