diff --git forkSrcPrefix/EntityFramework/tests/MySql.EntityFramework.CodeFirst.Tests/CodeFirstTests.cs forkDstPrefix/EntityFramework/tests/MySql.EntityFramework.CodeFirst.Tests/CodeFirstTests.cs index 5796c3e1e68a8c0b809b3edc2a6b093fcd8e6dbf..58f0911ac282ce9a497076f58b68631a1ca6c89d 100644 --- forkSrcPrefix/EntityFramework/tests/MySql.EntityFramework.CodeFirst.Tests/CodeFirstTests.cs +++ forkDstPrefix/EntityFramework/tests/MySql.EntityFramework.CodeFirst.Tests/CodeFirstTests.cs @@ -228,6 +228,46 @@ namespace MySql.Data.EntityFramework.CodeFirst.Tests } } + /// + /// Tests for fix of http://bugs.mysql.com/bug.php?id=118572 + /// Column aliases are not properly tracked, causing column renames caused by name conflicts across multiple + /// tables in a TPT hierarchy to be lost. + /// + [Test] + public void Bug118572_Test1() + { + List vehicles; + using (VehicleDbContext4 context = new VehicleDbContext4()) + { + context.Database.Delete(); + context.Database.Initialize(true); + var manuf = context.Manufacturers.Add(new Manufacturer4 { Name = "ACME" }); + context.Vehicles.Add(new Car4 { Id = 1, Name = "Mustang", Year = 2012, Status = "Foo", CarProperty = "Car", Manufacturer = manuf }); + context.Vehicles.Add(new Bike4 { Id = 101, Name = "Mountain", Year = 2011, Status = "Bar", BikeProperty = "Bike", Manufacturer = manuf }); + context.SaveChanges(); + + vehicles = context.Manufacturers.SelectMany(v => v.Vehicles).ToList(); + + int records = -1; + using (MySqlConnection conn = new MySqlConnection(context.Database.Connection.ConnectionString)) + { + conn.Open(); + MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM Vehicles", conn); + records = Convert.ToInt32(cmd.ExecuteScalar()); + } + + Assert.That(records, Is.EqualTo(context.Vehicles.Count())); + } + using (VehicleDbContext4 context = new VehicleDbContext4()) + { + var vehiclesfromdb = context.Manufacturers.SelectMany(v => v.Vehicles).ToList(); + Assert.That(vehiclesfromdb.OfType().Single().CarProperty, Is.EqualTo(vehicles.OfType().Single().CarProperty)); + Assert.That(vehiclesfromdb.OfType().Single().Status, Is.EqualTo(vehicles.OfType().Single().Status)); + Assert.That(vehiclesfromdb.OfType().Single().BikeProperty, Is.EqualTo(vehicles.OfType().Single().BikeProperty)); + Assert.That(vehiclesfromdb.OfType().Single().Status, Is.EqualTo(vehicles.OfType().Single().Status)); + } + } + /// /// Tests for fix of http://bugs.mysql.com/bug.php?id=63920 /// Maxlength error when it's used code-first and inheritance (discriminator generated column) diff --git forkSrcPrefix/EntityFramework/tests/MySql.EntityFramework.CodeFirst.Tests/Vehicle.cs forkDstPrefix/EntityFramework/tests/MySql.EntityFramework.CodeFirst.Tests/Vehicle.cs index f95bbbfa13d8239edcfe89b5f313a099e4045bdf..f6b816ef96723c3abc2656c128ed254121895f0c 100644 --- forkSrcPrefix/EntityFramework/tests/MySql.EntityFramework.CodeFirst.Tests/Vehicle.cs +++ forkDstPrefix/EntityFramework/tests/MySql.EntityFramework.CodeFirst.Tests/Vehicle.cs @@ -121,11 +121,13 @@ namespace MySql.Data.EntityFramework.CodeFirst.Tests public class Car4 : Vehicle4 { public string CarProperty { get; set; } + public string Status { get; set; } } public class Bike4 : Vehicle4 { public string BikeProperty { get; set; } + public string Status { get; set; } } public class Manufacturer4 {