Skip to content

Commit 89be53d

Browse files
Merge pull request MikaelEliasson#16 from otf/includefix
Fix for Include to BlogPost table
2 parents 4f6676e + e3b453d commit 89be53d

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

EntityFramework.Utilities/EntityFramework.Utilities/EFQueryHelpers.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public static EFUQueryable<T> IncludeEFU<T, TChild>(this IQueryable<T> query, Db
6969
},
7070
Loader = (rootFilters, parents) =>
7171
{
72-
var baseType = typeof(T).BaseType ?? typeof(T);
72+
var baseType = typeof(T).BaseType != typeof(object) ? typeof(T).BaseType : typeof(T);
7373

7474
dynamic dynamicSet = octx.GetType()
7575
.GetMethod("CreateObjectSet", new Type[] { })

EntityFramework.Utilities/Tests/IncludeTest.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.Linq.Expressions;
88
using System.Text;
99
using Tests.FakeDomain;
10+
using Tests.FakeDomain.Models;
1011

1112
namespace Tests
1213
{
@@ -32,6 +33,25 @@ public void SingleInclude_LoadsChildren()
3233
}
3334
}
3435

36+
[TestMethod]
37+
public void SingleInclude_LoadsChildren_BlogPost()
38+
{
39+
SetupSmallTestSet();
40+
using (var db = Context.Sql())
41+
{
42+
var result = db.BlogPosts.IncludeEFU(db, x => x.Comments).ToList();
43+
var bp1 = result.First(x => x.Title == "BP1");
44+
var bp2 = result.First(x => x.Title == "BP2");
45+
var bp3 = result.First(x => x.Title == "BP3");
46+
47+
Assert.AreEqual(1, bp1.Comments.Count);
48+
Assert.AreEqual("C1", bp1.Comments.First().Text);
49+
Assert.AreEqual(2, bp2.Comments.Count);
50+
Assert.AreEqual("C2", bp2.Comments.First().Text);
51+
Assert.AreEqual(3, bp3.Comments.Count);
52+
}
53+
}
54+
3555
[TestMethod]
3656
public void SingleInclude_SortedParent_LoadsChildren()
3757
{
@@ -526,6 +546,30 @@ private static void CreateSmallTestSet(Context db)
526546
}
527547
});
528548

549+
var blogPost1 = BlogPost.Create("BP1");
550+
blogPost1.Comments = new List<Comment>()
551+
{
552+
new Comment() { Text = "C1" }
553+
};
554+
db.BlogPosts.Add(blogPost1);
555+
556+
var blogPost2 = BlogPost.Create("BP2");
557+
blogPost2.Comments = new List<Comment>()
558+
{
559+
new Comment() { Text = "C2" },
560+
new Comment() { Text = "C3" }
561+
};
562+
db.BlogPosts.Add(blogPost2);
563+
564+
var blogPost3 = BlogPost.Create("BP3");
565+
blogPost3.Comments = new List<Comment>()
566+
{
567+
new Comment() { Text = "C4" },
568+
new Comment() { Text = "C5" },
569+
new Comment() { Text = "C6" }
570+
};
571+
db.BlogPosts.Add(blogPost3);
572+
529573
db.SaveChanges();
530574
}
531575
}

0 commit comments

Comments
 (0)