gpt4 book ai didi

c# - 从数据库获取值(value)到 Linq where 子句

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:16 24 4
gpt4 key购买 nike

我有一个名为 FILTRE_LINKLER 的表,列的名称是

  1. 身份证
  2. SEF_URL
  3. 条件

例如,

  • ID=1
  • SEF_URL="测试/"
  • CONDITIONS="股票>50"`

我想让 CONDITIONS 部分成为 linq where 子句。

var product = (from d in db.PRODUCTS
where *CONDITIONS from DB*
select new ProductModel
{
Description= d.DESCRIPTION,
Brand= d.BRANDS.BRAND,
SefUrl = sef_url,
Name= d.NAME,

});

我尝试这样做:

var query = db.FILTRE_LINKLER.Select(x => x.CONDITIONS);
var product = (from d in db.PRODUCTS
where query
select new ProductModel
{
Description= d.DESCRIPTION,
Brand= d.BRANDS.BRAND,
SefUrl = sef_url,
Name= d.NAME,

});

但我有一个错误,即无法将类型“System.Linq.IQueryable”隐式转换为 bool。

我编辑是因为“问题已解决”。解决方案:

下载 Install-Package System.Linq.Dynamic -Version 1.0.7(@StepUp 说的)然后添加到类中

using System.Linq.Dynamic;

然后是这样的代码,

 var whereCondition = db.FILTRE_LINKLER.Select(x => x.CONDITIONS).FirstOrDefault();
var product = (from d in db.PRODUCTS
where query
select new ProductModel
{
Description= d.DESCRIPTION,
Brand= d.BRANDS.BRAND,
SefUrl = sef_url,
Name= d.NAME,

}).Where(whereCondition);

最佳答案

你要问的是将数据库中存在的条件动态转换为 linq 中的 where。虽然没有神奇的声明,但说使用它。您必须编写一个扩展,它能够解释写入数据库的条件并返回一个谓词,然后您可以在 where 子句中使用该谓词。

关于c# - 从数据库获取值(value)到 Linq where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54304342/

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