System.Data.Tests.DataTableTest.WriteXmlSchema_Relations_ForeignKeys C# (CSharp) Метод

WriteXmlSchema_Relations_ForeignKeys() приватный Метод

private WriteXmlSchema_Relations_ForeignKeys ( ) : void
Результат void
        public void WriteXmlSchema_Relations_ForeignKeys()
        {
            MemoryStream ms1 = null;
            MemoryStream ms2 = null;
            MemoryStream msA = null;
            MemoryStream msB = null;

            DataSet ds1 = new DataSet();

            DataTable table1 = ds1.Tables.Add("Table 1");
            DataTable table2 = ds1.Tables.Add("Table 2");

            DataColumn col1_1 = table1.Columns.Add("col 1", typeof(int));
            DataColumn col1_2 = table1.Columns.Add("col 2", typeof(int));
            DataColumn col1_3 = table1.Columns.Add("col 3", typeof(int));
            DataColumn col1_4 = table1.Columns.Add("col 4", typeof(int));
            DataColumn col1_5 = table1.Columns.Add("col 5", typeof(int));
            DataColumn col1_6 = table1.Columns.Add("col 6", typeof(int));
            DataColumn col1_7 = table1.Columns.Add("col 7", typeof(int));

            DataColumn col2_1 = table2.Columns.Add("col 1", typeof(int));
            DataColumn col2_2 = table2.Columns.Add("col 2", typeof(int));
            DataColumn col2_3 = table2.Columns.Add("col 3", typeof(int));
            DataColumn col2_4 = table2.Columns.Add("col 4", typeof(int));
            DataColumn col2_5 = table2.Columns.Add("col 5", typeof(int));
            DataColumn col2_6 = table2.Columns.Add("col 6", typeof(int));
            DataColumn col2_7 = table2.Columns.Add("col 7", typeof(int));

            ds1.Relations.Add("rel 1",
                new DataColumn[] { col1_1, col1_2 },
                new DataColumn[] { col2_1, col2_2 },
                false);
            ds1.Relations.Add("rel 2",
                new DataColumn[] { col1_3, col1_4 },
                new DataColumn[] { col2_3, col2_4 },
                true);
            table2.Constraints.Add("fk 1",
                new DataColumn[] { col1_5, col1_6 },
                new DataColumn[] { col2_5, col2_6 });
            table1.Constraints.Add("fk 2",
                new DataColumn[] { col2_5, col2_6 },
                new DataColumn[] { col1_5, col1_6 });

            table1.Constraints.Add("pk 1", col1_7, true);
            table2.Constraints.Add("pk 2", col2_7, true);

            ms1 = new MemoryStream();
            ds1.Tables[0].WriteXmlSchema(ms1);
            ms2 = new MemoryStream();
            ds1.Tables[1].WriteXmlSchema(ms2);

            msA = new MemoryStream(ms1.GetBuffer());
            DataTable dtA = new DataTable();
            dtA.ReadXmlSchema(msA);

            msB = new MemoryStream(ms2.GetBuffer());
            DataTable dtB = new DataTable();
            dtB.ReadXmlSchema(msB);

            Assert.Equal(3, dtA.Constraints.Count);
            Assert.Equal(2, dtB.Constraints.Count);

            Assert.True(dtA.Constraints.Contains("pk 1"));
            Assert.True(dtA.Constraints.Contains("Constraint1"));
            Assert.True(dtA.Constraints.Contains("Constraint2"));
            Assert.True(dtB.Constraints.Contains("pk 2"));
            Assert.True(dtB.Constraints.Contains("Constraint1"));
        }
DataTableTest