我想知道是否可以检索查询的纯结果而不是其映射结果。请记住,我的实体类型只能在运行时知道。
var session = _sessionProvider.GetSession();
return session.QueryOver<object>(type.FullName).List()
此查询将返回映射到其具体类型的列表。但我想检索IEnumerable<object[]>
,其中包含例如[0] { Id : 1, RoleId : 1, Name : "Name" }
。
答案 0 :(得分:2)
所以你想把某些东西变成某种东西。我希望您至少知道输出中要包含的列名。
您可以通过使用PassThrough结果转换器并使用Projections.Property("<colName>")
object alias = null;
var result = session.QueryOver<object>(type.FullName)
.SelectList(list => list
.Select(Projections.Id())
.Select(Projections.Property("RoleId"))
.Select(Projections.Property("Name")))
.TransformUsing(Transformers.PassThrough)
.List<object[]>();
如果你不知道这些属性,你可以查询你的type
并反映出什么不是......