group by should work, just ToList is not supported by ef core.
This commit is contained in:
parent
fc0510f614
commit
7d9755ef58
@ -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()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user