使用通用类型变量进行NHibernate查询

时间:2018-08-29 08:59:35

标签: 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()
         .Query<T>()
         .ToList();

    return result;
}

MyModel如下:

public class MyModel
{
    public virtual int Id {get; set;}
    public virtual string Name {get; set;}
}

以及映射:

public class MyModelMapping : ClassMapping<MyModel>
{
    public MyModelMapping()
    {
        Id(a => a.Id, b => b.Generator(Generators.Identity));

        Property(a => a.Name, b =>
        {
            b.NotNullable(true);
        });
    }
}

我得到一个错误:myVar是一个变量,但像类型一样使用。

有什么想法吗?谢谢:)

1 个答案:

答案 0 :(得分:0)

尝试通过这样的类型

public string MyFunction()
{
    var myVar2 = ExecQuery<MyModel>();
}