/// <summary> /// 开始处理. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnProcess_Click(object sender, EventArgs e) { if (!File.Exists(this.txtFileName.Text)) { MessageBox.Show("Edmx 文件不存在!"); } OracleDatabaseInfoReader reader = new OracleDatabaseInfoReader(); // 读取表信息. List<TableOrViewInfo> tableList = reader.ReadAllTableAndViewInfo(this.txtConnString.Text); if (tableList == null || tableList.Count == 0) { MessageBox.Show("未能读取到 任何的表 / 列 信息!"); } // 更新数据. DefaultEdmxCommentWriter writer = new DefaultEdmxCommentWriter(); writer.EdmxCommentWriter(this.txtFileName.Text, tableList); MessageBox.Show("处理完毕!!!"); }
public void ReadAllTableAndViewInfoTest() { OracleDatabaseInfoReader target = new OracleDatabaseInfoReader(); string connString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.102)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)));User Id=TEST;Password=TEST"; List<TableOrViewInfo> tableInfoList = target.ReadAllTableAndViewInfo(connString); // 查询目标数据库, 结果列表应该非空. Assert.IsNotNull(tableInfoList); TableOrViewInfo testMainTableInfo = tableInfoList.FirstOrDefault(p => p.Name == "TEST_MAIN"); // 结果列表应该 包含有 TEST_MAIN 表的信息. Assert.IsNotNull(testMainTableInfo); // 备注信息 应该与 数据库中像匹配. Assert.AreEqual("测试主表", testMainTableInfo.Comment); TableOrViewInfo testSubTableInfo = tableInfoList.FirstOrDefault(p => p.Name == "TEST_SUB"); // 结果列表应该 包含有 TEST_SUB 表的信息. Assert.IsNotNull(testSubTableInfo); // 备注信息 应该与 数据库中像匹配. Assert.AreEqual("测试子表", testSubTableInfo.Comment); // 结果列表应该 包含有 TEST_MAIN 表 中具体每一列 的信息. // 列的 List 应该非空. Assert.IsNotNull(testMainTableInfo.ColumnList); // TEST_MAIN 表 只有2列. Assert.AreEqual(2, testMainTableInfo.ColumnList.Count); ColumnInfo testMainId = testMainTableInfo.ColumnList.FirstOrDefault(p => p.Name == "ID"); // 应该能够检索到 TEST_MAIN 表的 ID 列. Assert.IsNotNull(testMainId); // 列的备注信息应该与数据库一致. Assert.AreEqual("测试主表编号", testMainId.Comment); ColumnInfo testMainValue = testMainTableInfo.ColumnList.FirstOrDefault(p => p.Name == "VALUE"); // 应该能够检索到 TEST_MAIN 表的 VALUE 列. Assert.IsNotNull(testMainValue); // 列的备注信息应该与数据库一致. Assert.AreEqual("测试主表数值", testMainValue.Comment); }