gpt4 book ai didi

linq - 构建动态 linq 到 Sql lambda 表达式

转载 作者:行者123 更新时间:2023-12-01 04:11:45 25 4
gpt4 key购买 nike

我目前正在寻找一种方法,可以根据运行时的用户输入为我的 Linq to SQL 查询构建 lambda 表达式。我一直在网上四处寻找,但找不到任何有用的东西。如果有人可以告诉我如何做到这一点,或者有任何好的文章,请告诉我。非常感激!

例子:

假设我有这个 Linq 查询:

var loc = (from l in Entity.Locations
select l).Where(a => a.LocationId > 5);

可以这样表达 a => a.LocationId > 5在运行时构建?取决于用户是否选择了 LocationId。如果用户选择了名称,那么它将是 a => a.Name == "bla" .

我看到了 Scott 的一篇文章,但我更喜欢一个解决方案,它允许我创建一个强类型表达式,我可以在编译时检测任何可能的错误。

任何信息将不胜感激。

谢谢。

最佳答案

您可以创建包含旧表达式的新 LINQ 表达式。

var loc = (from l in Entity.Locations select l);

if (hasLocation)
loc = loc.Where(a => a.LocationId > 5);

if (hasName)
loc = loc.Where(a => a.Name == "bla");

等等。

该表达式仅在您使用后才计算,例如 var result = loc.ToList();

关于linq - 构建动态 linq 到 Sql lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5659254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com