如何在Linq中附加Where String?

xai*_*u31 0 c# linq

我试图制作一个动态的where子句,然后将其嵌入到LINQ查询中,但我不知道该怎么做.

StringBuilder whereClause = new StringBuilder();
    if (groupId>=0)
    {
        whereClause.Append("type.GroupID == groupId");
    }
    if (siteId>=0)
    {
        if (whereClause.Equals("type.GroupID == groupId"))
        {
            whereClause.Append("&&");
        }
        whereClause.Append("type.SiteID == siteId");
    }
    if (string.IsNullOrEmpty(typeName))
    {
        if (whereClause.Equals("type.GroupID == groupId&&type.SiteID == siteId"))
        {
            whereClause.Append("&&");
        }
        whereClause.Append("type.ThermometerTypeName == typeName");
    }
var thermoTypes = execore from type in db.TempR_ThermometerType
    where whereClause
    select type).ToList();
Run Code Online (Sandbox Code Playgroud)

Lua*_*aan 8

你想知道LINQ存在的全部原因!

试试这个:

var query = from type in db.TempR_ThermometerType
            select type;

if (groupId >= 0)
{
    query = query.Where(type => type.GroupID == groupId);
}
if (siteId >= 0)
{
    query = query.Where(type => type.SiteID == siteId);
}

...

return query.ToList();
Run Code Online (Sandbox Code Playgroud)