gpt4 book ai didi

带有 ResultSetTransformer 的 NHibernate future 查询

转载 作者:行者123 更新时间:2023-12-03 17:55:55 27 4
gpt4 key购买 nike

我正在尝试使用 nhibernate 查询任意 sql 数据,只要我不使用 Futures 功能,它就可以正常工作,但是,当我使用 Futures 时,数据不会传递到 ResultSetTransformer 中。

示例代码:

public class TestResultSetTransformer : IResultTransformer
{
public object TransformTuple(object[] tuple, string[] aliases)
{
return tuple;
}

public IList TransformList(IList collection)
{
return collection;
}
}
public void Foo(ISession sess){
var x = sess.CreateSQLQuery("select * from MailEvent").SetResultTransformer(new TestResultSetTransformer()).Future<object[]>();
var xprime = sess.CreateSQLQuery("select * from MailEvent").SetResultTransformer(new TestResultSetTransformer()).List<object[]>();
foreach(var y in x)
{

}
}

在此示例中, future 查询返回具有正确行数的空对象数组列表,当我对其进行调试时,object[] 元组为空,但是对于列表查询,它按预期工作。

最佳答案

您可能希望尝试这样的事情:

public class MailEvent
{
public virtual int Id{get;set;}
public virtual string Message{get;set;}
}

public IEnumerable<MailEvent> GetMailEvents(ISession session)
{
return session.CreateSQLQuery("select Id, Message from MailEvent")
.SetResultTransformer(Transformers.AliasToBean<MailEvent>())
.Future<MailEvent>();
}

假设您知道目标格式,这应该将任意 SQL 数据转换为您需要的数据

关于带有 ResultSetTransformer 的 NHibernate future 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11513240/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com