このコードサンプルを「翻訳」する必要があります。
using var db = new MyDbContext();
var simple_linq = db.USERS.GroupBy(u => u.id_employee).Select(u => u.FirstOrDefault()).ToList(); //it's worked fine for me
Dynamic LINQを使用して同じコードに変換します。私は試しました:
var dynamic_linq = db.USERS.GroupBy(groupBy, "it").Select("it"); // but I need Dynamic LINQ
dynamic_linq
USERS
オブジェクトを受け取ります(私にとって非常に重要です)、一意のUSERS
を取得する方法がわからない、Dynamic LINQでFirstOrDefault()
関数を使用する方法がわからない、変換する方法がわからないList
への私の結果。他の解決策を知らない。
また、 MoreLinq
ライブラリのDistinctBy()
を使用しようとしましたが、動的式では使用できません。
何か案は?
System.Linq.Dynamic.Coreを使用する場合、次のコードを使用できるはずです。
var users = new[] { new { id_employee = 1, name = "a" }, new { id_employee = 1, name = "b" } }.AsQueryable();
var simple_linq = users.GroupBy(u => u.id_employee).Select(u => u.FirstOrDefault()).ToList();
simple_linq.Dump();
var dynamic_linq = users.GroupBy("id_employee", "it").Select("it.FirstOrDefault()");
dynamic_linq.Dump();