LINQ to SQL:where子句基于用户输入过滤

时间:2012-12-14 18:14:23

标签: linq-to-sql

在用户界面中,有一个下拉列表,它为参数'field'取值。它可以是特定值,或者“全部”是默认值,其中需要检索与“字段”值无关的所有行。

如何在LINQ中编写Where子句,以便用户为field列提供值,然后将其用作过滤器,否则从DB获取所有行?

1 个答案:

答案 0 :(得分:2)

您可以使用IQueryable<T>作为LINQ查询的基础,并将其附加到您需要的所有内容中:

示例:

        string userInput = "";
        using (var context = new EntityModel())
        {
            IQueryable<MyEntity> query = context.MyEntities;

            if (!String.IsNullOrWhiteSpace(userInput))
                query = query.Where(x => x.MyFilterableProperty == userInput);

            return query.ToList();
        }