Beispiel #1
0
        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();
                }
            }
        }