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) }
// 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"); }