我是linq dynamic 的新手|我需要翻译一个简单的 linq 查询
假设我有这个类(class)
public class Parent
{
public int Id {get;set;}
public ICollection<Child> Childrens {get;set;}
}
public class Child
{
public decimal exampleData {get;set;}
public decimal moreData {get;set;}
}
我需要在表格中显示父属性和第一个子属性(按顺序排序),我这样做没问题,问题是我还需要过滤它(只有排序后的第一个结果) .
问题是,我需要过滤 Parent
列表而不是过滤子列表,只比较第一个
例如,使用普通的 linq,我可以做这样的事情
List<Parent> result = db.Parent.Where(c => c.Childrens.OrderBy(c => c.exampleData).FirstOrDefault().moreData > 300).ToList()
linq dynamics 有可能吗?还是另一个图书馆?我该怎么做
最佳答案
有几个 Dynamic LINQ 包,都支持不同的 LINQ 方法。
我建议使用 EntityFramework.DynamicLinq .
首先是因为它列在 EF Core extensions 中(包含共享功能的 System.Linq.Dynamic.Core 包)。
其次,也是更重要的一点,因为它支持您需要的FisrtOrDefault
方法:)
因此以下内容适用于该包:
.Where("Childrens.OrderBy(exampleData).FirstOrDefault().moreData > 300")
关于c# - 将第一个 child 与 linq dynamic 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53500455/