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
{