C# 在lambda表达式中包含元素列表
您好,我正在尝试通过指定需要包含的元素列表来使用即时加载。这是我编写的表达式:C# 在lambda表达式中包含元素列表,c#,linq,C#,Linq,您好,我正在尝试通过指定需要包含的元素列表来使用即时加载。这是我编写的表达式: public class Prefetch<TEntity> { private readonly List<LambdaExpression> items = new List<LambdaExpression>(); public Prefetch<TEntity> Include<TPath>(Expression<Func&l
public class Prefetch<TEntity>
{
private readonly List<LambdaExpression> items = new List<LambdaExpression>();
public Prefetch<TEntity> Include<TPath>(Expression<Func<TEntity, TPath>> path)
{
this.items.Add(path);
return this;
}
}
private static IEnumerable<string> GetCoverPrefetch()
{
new Prefetch<ContractCoverInstance>().Include(x => x.Tariff.AksAssumptionData.ToList().ForEach(x => x.MortalityTableMainInsuredMale))
}
公共类预取
{
私有只读列表项=新列表();
公共预取包含(表达式路径)
{
此.items.Add(路径);
归还这个;
}
}
私有静态IEnumerable GetCoverPrefetch()
{
新的预回迁().Include(x=>x.primary.aksasumptiondata.ToList().ForEach(x=>x.verititytablemainsuredmale))
}
我不确定我所写的内容是否正确,是否会达到我预期的效果,我无法测试应用程序一段时间,因为有一系列编译错误,由于一些模型更改,需要在测试应用程序之前进行更正
这就是我相信这个表达可以做到的。如果我错了,请纠正我:
对于列表中产生AksAssumptionData的每个元素,获取
死亡险维持保险价格并包括在内
如果这是不正确的,那么我如何实现我刚才在lambda表达式中所说的
项目
应该是数量的列表
。。。为什么要列出lambda表达式GetCoverPrefetch
应该返回一个IEnumerable
,但是您希望字符串包含什么?您没有从函数返回字符串。您只是在使用ForEach
什么也不做-它会给您一个编译错误。您应该使用普通的foreach
并使用yield return
,或者只使用return new Prefetch()。Include(…)
,但Include返回的不是IEnumerable
,而是列表
GetCoverPrefetch()
返回了项
它将只包含您传入的lambda表达式。所以它什么也不做我建议您更正代码中的其他错误,测试此查询,如果您有问题,请返回。这更像是一个sintax问题,而不是应用程序中的实际问题,并且系统的某些部分我无法触及,必须为其他部分w8为什么不从外部测试代码?复制类并提供一些虚拟数据来处理并不困难