Code: Select all
[TestMethod]
public void DbContext_Include_OrderBy_First()
{
using (var dbContext = new TestDbContext(ConnectionString))
{
dbContext.Database.EnsureDeleted();
dbContext.Database.EnsureCreated();
var user = new User { Name = "John" };
var folder = new Folder { Name = "test", Owner = user };
dbContext.Add(folder);
dbContext.SaveChanges();
}
// Works fine without .OrderBy
using (var dbContext = new TestDbContext(ConnectionString))
{
var folder = dbContext.Set<Folder>()
.Include(f => f.Owner)
.First();
Assert.AreEqual("test", folder.Name);
Assert.AreEqual("John", folder.Owner.Name);
}
// Works fine without .First
using (var dbContext = new TestDbContext(ConnectionString))
{
var folders = dbContext.Set<Folder>()
.Include(f => f.Owner)
.OrderBy(f => f.Id)
.ToList();
var folder = folders.First();
Assert.AreEqual("test", folder.Name);
Assert.AreEqual("John", folder.Owner.Name);
}
// Fails with .OrderBy.First
using (var dbContext = new TestDbContext(ConnectionString))
{
var folder = dbContext.Set<Folder>()
.Include(f => f.Owner)
.OrderBy(f => f.Id)
.First();
Assert.AreEqual("test", folder.Name);
Assert.AreEqual("John", folder.Owner.Name); // <<< Assert.AreEqual failed. Expected:<John>. Actual:<test>.
}
}