gpt4 book ai didi

c# - LINQ 中的动态查询

转载 作者:行者123 更新时间:2023-12-03 21:00:44 26 4
gpt4 key购买 nike

我在一个网络表单中有四个按钮,它们的作用是分别加载第一条、上一条、下一条和最后一条记录。他们通过获取表单中加载的当前 ID 并按要求执行操作来实现这一点。我正在使用 Linq to SQL。下面是我用于 NEXT 记录的代码,如果我想按 ID 加载下一条记录,它可以正常工作。

var dx = new DataModelDataContext();
List<Dog> dogList = dx.Dogs.AsEnumerable().ToList();

try
{
return
dogList.SkipWhile(x => x.Id != dogId).Skip(1).FirstOrDefault().Id.ToString(
CultureInfo.InvariantCulture);
}
catch
{
return null;
}

我重复一遍,对于前面的场景,这段代码工作正常。

情况发生了变化,我现在必须使用前面提到的按钮来检索记录一个下拉列表,其中包含表单的属性(名字、姓氏、性别等...)因此它不再是一个用于定位的函数通过 ID 记录下一条记录。

我正在考虑创建一个 LoadNextRecord(searchParameter,TextboxValue) 以便根据属性定位下一条记录从下拉列表中指定。

但是,是否可以动态指定我要与哪个属性比较我的数据?

示例:x =>x.[searchParameter] != textboxvalue

我知道这可以使用动态 sql...但是我想知道是否可以使用 LINQ。

最佳答案

如果你使用 Dynamic Linq 是可能的.通过 downloading the sample here ,您将在此路径的 zip 文件中找到一个文件:LinqSamples\DynamicQuery\DynamicQuery\dynamic.cs。通过添加该文件并正确使用,您将获得一些 IQueryable 扩展方法,这些方法允许您以字符串格式表达条件。在 zip 中有关于如何使用的示例。有了这个解决方案,您就会遇到所谓的“魔术字符串”,但并不那么“魔术”,因为 linq 表达式是在幕后编译的。

关于c# - LINQ 中的动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11582337/

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