Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用泛型类型变量进行NHibernate查询_C#_Sql Server_Nhibernate_Asp.net Core 2.0 - Fatal编程技术网

C# 使用泛型类型变量进行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()

如何使用变量作为调用NHibernate查询的类型?我的代码看起来(简化)如下:

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>();
}