private static void DynamicEsqlTest() { using (var context = new BAEntities()) { var eSql = SingleEntityEsql <Reservation>(90, context); var query = context.CreateQuery <DbDataRecord>(eSql); var results = query.Execute(MergeOption.AppendOnly); foreach (IExtendedDataRecord record in results) { var fieldMetadata = record.DataRecordInfo.FieldMetadata; for (int i = 0; i < record.FieldCount; i++) { //If the navigation property is an Entity, list its fields. switch (fieldMetadata[i].FieldType.TypeUsage. EdmType.BuiltInTypeKind) { case BuiltInTypeKind.EntityType: DisplayFields(((EntityObject)(record[i])).EntityKey, context); break; case BuiltInTypeKind.CollectionType: { var collection = (System.Collections.ICollection)(record[i]); foreach (EntityObject entity in collection) { DisplayFields(entity.EntityKey, context); } } break; } } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } } }