group by should work, just ToList is not supported by ef core.

This commit is contained in:
David Lebee 2019-11-27 16:50:55 -06:00
parent fc0510f614
commit 7d9755ef58

View File

@ -7,6 +7,7 @@ using PoweredSoft.DynamicLinq.Dal.Pocos;
using PoweredSoft.DynamicLinq;
using Microsoft.EntityFrameworkCore;
using PoweredSoft.DynamicLinq.EntityFrameworkCore;
using PoweredSoft.DynamicLinq.Test.Helpers;
namespace PoweredSoft.DynamicLinq.Test
{
@ -114,6 +115,38 @@ namespace PoweredSoft.DynamicLinq.Test
Assert.IsNotNull(author);
}
[TestMethod]
public void GroupBy()
{
var context = GetCoreContext(nameof(TestWhereOr));
SeedForTests(context);
var authorsWithFamilyNameCount = context.Authors
.GroupBy(t => new
{
t.LastName,
t.FirstName
}).Select(t => new
{
t.Key,
Count = t.Count()
}).ToList();
var authorsWithFamilyNameCountDynamic = context.Authors
.GroupBy(t => t.Path("FirstName").Path("LastName"))
.Select(t => t.Key("FirstName", "FirstName").Key("LastName", "LastName").Count("Count"))
.ToDynamicClassList();
Assert.AreEqual(authorsWithFamilyNameCount.Count, authorsWithFamilyNameCountDynamic.Count);
for(var i = 0; i < authorsWithFamilyNameCount.Count; i++)
{
Assert.AreEqual(authorsWithFamilyNameCount[i].Key.FirstName, authorsWithFamilyNameCountDynamic[i].GetDynamicPropertyValue("FirstName"));
Assert.AreEqual(authorsWithFamilyNameCount[i].Key.LastName, authorsWithFamilyNameCountDynamic[i].GetDynamicPropertyValue("LastName"));
Assert.AreEqual(authorsWithFamilyNameCount[i].Count, authorsWithFamilyNameCountDynamic[i].GetDynamicPropertyValue("Count"));
}
}
[TestMethod]
public void TestWhereOr()
{