使用可以为null的参数创建查询

时间:2015-08-02 03:22:44

标签: c# entity-framework

我创建了这个方法:

public List SearchUsers(Users user)
{
    List lstUser;
    using (var ctx = new MyEntities())
    {
        result = ctx.User
            .Where(u=>u.Name.Contains(user.Name) && u=>u.ID==user.ID)
            .OrderByDescending(u => u.ID)
            .ToList();
        return lstUser;
    }
}

当我调用它时,user.nameuser.ID参数应该有值,但有时候我想要为空。 IDintnamestring(30)。我从文本框中读到它们。

如何创建和调用此方法?

1 个答案:

答案 0 :(得分:2)

这样的事情可能会起到作用: 在调用方法时填充userName和userId,或者将一个或两个null保留为适合禁用该部分搜索。

public List<User> SearchUsers(string userName, int? userId)
{
    using (var ctx = new MyEntities())
    {
        IQueryable<User> query = ctx.User;

        if (userName != null)
            query = query.Where(u=>u.Name.Contains(userName));

        if (userId != null)
            query = query.Where(u=>u.ID==userId.Value);

        var users = query
            .OrderByDescending(u => u.ID)
            .ToList();

        return users;
    }
}