예제 #1
0
        private static void IterateLOBSystems()
        {
            NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();

            Console.WriteLine("Listing system instances...");
            foreach (String name in sysInstances.Keys)
            {
                Console.WriteLine(name);
            }

            NamedLobSystemDictionary lobSystems = ApplicationRegistry.GetLobSystems();

            foreach (LobSystem lobSystem in lobSystems.Values)
            {
                Console.WriteLine("Application: " + lobSystem.Name);
                NamedDataClassDictionary lobClasses = lobSystem.GetDataClasses();
                foreach (DataClass dataClass in lobClasses.Values)
                {
                    Console.WriteLine(" Entities: " + dataClass.Name);
                }


                if (lobSystem.Name == "AdventureWorksSample")
                {
                    // work on a specific class
                    DataClass             customers = lobClasses["Customer"];
                    NamedMethodDictionary methods   = customers.GetMethods();
                    foreach (Method meth in methods.Values)
                    {
                        Console.WriteLine(" Method: " + meth.Name);
                    }
                }

                if (lobSystem.Name == "AdventureWorksLOBSystem")
                {
                    // filter all femalce Employees

                    Entity employees = lobSystem.GetEntities()["HumanResources.Employee"];

                    FilterCollection filtered = employees.GetFinderFilters();
                    (filtered[0] as ComparisonFilter).Value = 10;

                    IEntityInstanceEnumerator empEnum = employees.FindFiltered(filtered,
                                                                               ApplicationRegistry.GetLobSystemInstances
                                                                                   ()["AdventureWorksInstance"]);

                    while (empEnum.MoveNext())
                    {
                        DataTable dt = (empEnum.Current as DbEntityInstance).EntityAsDataTable;
                        PrintDataRow(dt.Rows[0]);
                    }
                }
            }
        }