コード例 #1
0
        private void fillProgrammaticallyMenuItem_Click(object sender, EventArgs e)
        {
            ResetQueryBuilder();

            // Fill the query builder metadata programmatically

            // setup the query builder with metadata and syntax providers
            queryBuilder1.SyntaxProvider = genericSyntaxProvider1;
            queryBuilder1.MetadataLoadingOptions.OfflineMode = true;             // prevent querying obejects from database

            // create database and schema
            MetadataNamespace database = queryBuilder1.MetadataContainer.AddDatabase("MyDB");

            database.Default = true;
            MetadataNamespace schema = database.AddSchema("MySchema");

            schema.Default = true;

            // create table
            MetadataObject tableOrders = schema.AddTable("Orders");

            tableOrders.AddField("OrderID");
            tableOrders.AddField("OrderDate");
            tableOrders.AddField("CustomerID");
            tableOrders.AddField("ResellerID");

            // create another table
            MetadataObject tableCustomers = schema.AddTable("Customers");

            tableCustomers.AddField("CustomerID");
            tableCustomers.AddField("CustomerName");
            tableCustomers.AddField("CustomerAddress");

            // add a relation between these two tables
            MetadataForeignKey relation = tableCustomers.AddForeignKey("FK_CustomerID");

            relation.Fields.Add("CustomerID");
            relation.ReferencedObjectName = tableOrders.GetQualifiedName();
            relation.ReferencedFields.Add("CustomerID");

            //create view
            MetadataObject viewResellers = schema.AddView("Resellers");

            viewResellers.AddField("ResellerID");
            viewResellers.AddField("ResellerName");

            // kick the query builder to fill metadata tree
            queryBuilder1.InitializeDatabaseSchemaTree();

            WarnAboutGenericSyntaxProvider();             // show warning (just for demonstration purposes)
        }
コード例 #2
0
        // HOWTO: Fill metadata container with custom objects
        public void FillMetadataContainer()
        {
            MetadataNamespace database = _query.SQLContext.MetadataContainer.AddDatabase("MyDB");

            database.Default = true; // hides the default database prefix from object names
            MetadataNamespace schema = database.AddSchema("MySchema");

            schema.Default = true; // hides the default schema prefix from object names

            // create table
            MetadataObject tableOrders = schema.AddTable("Orders");

            tableOrders.AddField("OrderID");
            tableOrders.AddField("OrderDate");
            tableOrders.AddField("City");
            tableOrders.AddField("CustomerID");
            tableOrders.AddField("ResellerID");

            // create another table
            MetadataObject tableCustomers = schema.AddTable("Customers");

            tableCustomers.AddField("CustomerID");
            tableCustomers.AddField("CustomerName");
            tableCustomers.AddField("CustomerAddress");

            MetadataField fieldCustValue = tableCustomers.AddField("CustomerValue");

            fieldCustValue.FieldType = System.Data.DbType.Double;

            MetadataField fieldCustBirthDate = tableCustomers.AddField("CustomerBirthDay");

            fieldCustBirthDate.FieldType = System.Data.DbType.DateTime;

            MetadataField fieldCustCity = tableCustomers.AddField("City");

            fieldCustCity.FieldType = System.Data.DbType.String;
            fieldCustCity.Size      = 50;

            // add a relation between these two tables
            MetadataForeignKey relation = tableCustomers.AddForeignKey("FK_CustomerID");

            relation.Fields.Add("CustomerID");
            relation.ReferencedObjectName = tableOrders.GetQualifiedName();
            relation.ReferencedFields.Add("CustomerID");

            // create another table
            MetadataObject salesOrderHeader = schema.AddTable("SalesOrderHeader");

            salesOrderHeader.AddField("SalesOrderID");
            salesOrderHeader.AddField("OrderDate");

            // create another table
            MetadataObject salesOrderDetail = schema.AddTable("SalesOrderDetail");

            salesOrderDetail.AddField("SalesOrderID");
            salesOrderDetail.AddField("UnitPrice");


            //create a view
            MetadataObject viewResellers = schema.AddView("Resellers");

            viewResellers.AddField("ResellerID");
            viewResellers.AddField("ResellerName");
        }