0
this method을 사용하여 데이터베이스에서 동적으로 데이터를 가져오고 싶습니다. 그 주제에서 설명했듯이, nhibernate 설정에 확장을 추가해야합니다.NHibernate 확장 기능을 수동으로 추가하는 방법?
누군가가 그 확장 기능을 추가하는 방법을 알려주시겠습니까?
미리 감사드립니다.
public static class NhTransformers
{
public static readonly IResultTransformer ExpandoObject;
static NhTransformers()
{
ExpandoObject = new ExpandoObjectResultSetTransformer();
}
private class ExpandoObjectResultSetTransformer : IResultTransformer
{
public IList TransformList(IList collection)
{
return collection;
}
public object TransformTuple(object[] tuple, string[] aliases)
{
var expando = new ExpandoObject();
var dictionary = (IDictionary<string, object>)expando;
for (int i = 0; i < tuple.Length; i++)
{
string alias = aliases[i];
if (alias != null)
{
dictionary[alias] = tuple[i];
}
}
return expando;
}
}
}
public static class NHibernateExtensions
{
public static IList<dynamic> DynamicList(this IQuery query)
{
return query.SetResultTransformer(NhTransformers.ExpandoObject)
.List<dynamic>();
}
}
-----------------------------------
USE CASE
-----------------------------------
var results = this.session.CreateSQLQuery("select Id, Title, Body from [Posts]")
.DynamicList(); // Secret sauce!
// results are now dynamic!
Console.WriteLine(results[0].Id);
Console.WriteLine(results[0].Name);
// rock on!
"수동으로"의미하는 것은 시도하지 않았지만 작동해야합니다. – Najera
내 기존 nhibernate 환경에서이 메서드를 어떻게 사용하고 추가 할 수 있을까요? –
당신은 그것을 필요 없어요, 그냥 (부름을 사용하여) 전화하고 작동해야합니다. – Najera