大家早上好,首先很抱歉我的英语不好。我使用 EF Core 7,需要通过设置一系列我事先不知道其数量的条件来过滤 SQL 数据库的数据。 这些条件适用于单个列。
如果我有一个条件,我会使用:
trova = (from tr in db.T_ClientiCOLs
where tr.Azienda.Contains(t) select tr).ToList();
但是如果我想用不同的条件进行过滤,我该怎么做呢?
我试过了
string[] x = t.Split(' ');
string pSql = "";
foreach (string s in x)
{
if (string.IsNullOrEmpty(s))
{
continue;
}
else
{
if (pSql.Length > 0)
{
pSql += " AND ";
}
pSql = pSql + " [Azienda] like N'%" + s + "%' ";
}
}
FormattableString sql = $"SELECT * FROM [dbo].[T_Clienti] WHERE {pSql}";
trova = db.T_Clientis.FromSql(sql).ToList();
但是它不起作用...
我弄清楚了如何修改代码:
string[] x = t.Split(' '); var query = db.T_Clientis.AsQueryable(); foreach(x 中的字符串 s) { if (string.IsNullOrEmpty(s)) { 继续; } 别的 { 查询 = query.Where(x => x.Azienda.Contains(s)); } } trova = query.ToList();