private void InitForeignKeys(IDataBaseSchema meta) { foreach (DataRow row in meta.GetForeignKeys(catalog, schema, name).Rows) { AddForeignKey(row, meta); } }
/// <summary> /// Inicializa as chaves estrangeiras da instancia. /// </summary> /// <param name="meta"></param> private void InitForeignKeys(IDataBaseSchema meta) { foreach (System.Data.DataRow row in meta.GetForeignKeys(_catalog, _schema, _name).Rows) { AddForeignKey(row, meta); } }
public void InquireSchema() { Dialect.MsSql2005Dialect dialect = new MsSql2005Dialect(); DbConnection conn = new SqlConnection(@""); conn.Open(); DatabaseMetadata meta = new DatabaseMetadata(conn, dialect); IDataBaseSchema schema = dialect.GetDataBaseSchema(conn); var dt = schema.GetTables(null, null, null, new string[0]); var cols = schema.GetColumns(null, null, null, null); var keys = schema.GetForeignKeys(null, null, null); foreach (DataRow r in dt.Rows) { var tableMeta = schema.GetTableMetadata(r, true); Console.WriteLine(string.Format("Table {2}:[{0}].[{1}]", tableMeta.Schema, tableMeta.Name, tableMeta.Catalog)); ITableMetadata tm = meta.GetTableMetadata(tableMeta.Name, tableMeta.Schema, tableMeta.Catalog, false); IColumnMetadata col = tm.GetColumnMetadata(cols.Rows[0].ItemArray[2] as string); } }