NHibernate Future Query with ResultSetTransformer

I am trying to query arbitrary sql data using nhibernate, it works fine until I use the Futures function, however when I use Futures, the data is not passed to ResultSetTransformer.

Code example:

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) { } } 

in this example, the futures query returns a list of empty arrays of objects that has the correct line counter, when I debug it, the object [] tag is empty, however, it works with the list request as expected.

+4
source share
1 answer

You can try something like this:

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

This should convert arbitrary SQL data to what you need if you know the destination format

0
source

All Articles