에서 LINQ에서 자신의 이름으로 프로젝트 열이 나는 로 propertyNames 및 속성 유형을 포함하는 Dictionary<string, string> Fields
있습니다.된 IQueryable : 동적 런타임
나는 질의 객체가 동적으로 필드 사전에 따라 내가 유형을 구축하는 TypeBuilder를 사용하고 IQueryable<T> query = GetQuery();
을 :
TypeBuilder builder = CreateTypeBuilder("MyDynamicAssembly", "MyModule", "MyType");
DataTable dt = new DataTable();
foreach (var s in Fields)
{
CreateAutoImplementedProperty(builder, s.Key, Type.GetType(s.Value));
dt.Columns.Add(s.Key, Type.GetType(s.Value));
}
Type resultType = builder.CreateType();
난 단지 프로젝트 linq
을 사용하여 쿼리 개체를 수정할 그들의 이름이 Fields
사전에있는 열. 같은 뭔가 :
string[] columnsNames = Fields.Select(x => x.Key).ToArray();
나는이 어떻게 할 수있는
:dynamic queryResult = query.Take(10).Select("Don't know how to project here???");
은 열 이름은 고려?
윌의 확장 방법 샘플 데이터를 출력하고 출력하면 이해하기 쉬움 –
런타임에 쿼리를 동적으로 작성하기 때문에 표현식 트리를 동적으로 빌드해야합니다. 이 라이브러리를 사용하여 다음 작업을 수행 할 수 있습니다. https://dynamiclinq.codeplex.com/documentation –
@Gilad Green 더 많은 정보를 추가했습니다. – Karamafrooz