我试图制作一个动态的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)
你想知道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)