using System.Data; using YLErp.BLL; using Microsoft.EntityFrameworkCore; namespace YLErp.Tests { class TestCompare : TestBase { public override void Execute() { var dt1 = ExecuteDataTable("select * from trade where id=102233"); var dt2 = ExecuteDataTable("select * from trade where id=102234"); CompareDataRow(dt1.Columns, dt1.Rows[0], dt2.Rows[0]); var dt3 = ExecuteDataTable("select * from trade_forward where tradeid=102233"); var dt4 = ExecuteDataTable("select * from trade_forward where tradeid=102234"); CompareDataRow(dt3.Columns, dt3.Rows[0], dt4.Rows[0]); } private DataTable ExecuteDataTable(string sql) { using (var db = new YLContext()) { var con = db.Database.GetDbConnection(); con.Open(); var cmd = con.CreateCommand(); cmd.CommandText = sql; cmd.CommandType = CommandType.Text; var reader = cmd.ExecuteReader(); var dt = new DataTable(); dt.Load(reader); return dt; } } static void CompareDataRow(DataColumnCollection columns, DataRow row1, DataRow row2) { Console.WriteLine("-------------------------------------"); foreach (DataColumn col in columns) { var colName = col.ColumnName; if (!object.Equals(row1[colName], row2[colName])) { Console.WriteLine($"{colName}--{row1[colName]}<>{row2[colName]}"); } } } } }