C# 是否有方法根据所检查的值是否为null来添加或删除LINQ to DB查询的行?

C# 是否有方法根据所检查的值是否为null来添加或删除LINQ to DB查询的行?,c#,linq,entity-framework,entity,C#,Linq,Entity Framework,Entity,如果我有这样一个问题: String Category = HttpContext.Current.Request.QueryString["Product"].ToString(); IQueryable<ItemFile> pressReleases = from file in connection.ItemFile where file.Type_ID ==

如果我有这样一个问题:

String Category = HttpContext.Current.Request.QueryString["Product"].ToString();

IQueryable<ItemFile> pressReleases = from file in connection.ItemFile
                                                           where file.Type_ID == 8
                                                                && file.Category == Category 
                                                           select file;
String Category=HttpContext.Current.Request.QueryString[“Product”].ToString();
IQueryable pressReleases=来自connection.ItemFile中的文件
其中file.Type_ID==8
&&file.Category==Category
选择文件;

是否有方法进行此LINQ查询,以便在类别为null或空时不使用行
file.Category==Category

这可能不是您想要的结果,但将呈现相同的结果:

String Category = HttpContext.Current.Request.QueryString["Product"].ToString();

IQueryable<ItemFile> pressReleases = from file in connection.ItemFile
                                     where file.Type_ID == 8
                                     && (string.IsNullOrEmpty(Category) || file.Category == Category)
                                     select file;
String Category=HttpContext.Current.Request.QueryString[“Product”].ToString();
IQueryable pressReleases=来自connection.ItemFile中的文件
其中file.Type_ID==8
&&(string.IsNullOrEmpty(Category)| | file.Category==Category)
选择文件;

除非你需要,否则不要在哪里添加那个

IQueryable<ItemFile> pressReleases = from file in connection.ItemFile
                                     where file.Type_ID == 8
                                     select file;

if(!string.IsNullOrEmpty(Category)) {
    pressReleases = pressReleases.Where(file => file.Category == Category);
}
IQueryable pressleases=来自connection.ItemFile中的文件
其中file.Type_ID==8
选择文件;
如果(!string.IsNullOrEmpty(类别)){
pressReleases=pressReleases.Where(file=>file.Category==Category);
}

这是因为LINQ查询可与延迟执行组合,所以此筛选器仍然是最终TSQL的一部分。

Sani,我认为OP关注的是“Category”为null或空的位置,而不是file.Category。如果是这样,我认为您的解决方案将排除一些应该包括在内的项目。谢谢!我感谢你的帮助!