Exemplo n.º 1
0
        /// <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);

        }