需要比较登录的用户以确定要显示的信息

时间:2016-09-12 19:06:18

标签: sql asp.net linq

这是一个供应商页面,其中有多个用户具有不同的角色。现在它只有2个用户类型,我有一个布尔方法,它使用linq到sql来检查它是否是最初为供应商进行更改的用户。我得到的错误是序列返回多个。

 public static bool BoolUser1(string user)
    {
        bool user1Bool = false;
        if (user == String.Empty)
        {
            return false;
        }
        if (user != null)
        {
            var context = new rempscoDataContext();
            string user1 = (from u in context.vendors
                            where u.user1_info_edit_user == user
                            select u).SingleOrDefault().user1_info_edit_user;
            if (user1 == user)

                user1Bool = true;
        }
        return user1Bool;
    }

1 个答案:

答案 0 :(得分:0)

如果序列中有多个元素,那么SingleOrDefault将抛出异常。

  

返回序列的唯一元素,如果是,则返回默认值   序列是空的;如果有更多,此方法会抛出异常   比序列中的一个元素。

也许您的过滤器应该更具体。您也可以迭代整个序列以获得所需的值,或尝试使用FirstOrDefault(),但这可能无法返回正确的结果。

更多关于SingleOrDefault()和FirstOrDefault()之间的区别:

LINQ: When to use SingleOrDefault vs. FirstOrDefault() with filtering criteria