当我尝试 getallUsers() 时,序列不包含匹配元素错误

Sequence contains no matching element error when I try to getallUsers()

你好,我的问题是我有 2 个 table 一个是用户 table 另一个是 CustomerUsers 我 select 他们被 Deleted=0 当我尝试列出所有用户并且有customerId,我的问题是序列不包含匹配元素错误
我的代码在下面,如有帮助将不胜感激

谢谢

我的 Dapper 查询如下:

 public List<User> GetAllUsers()
        {
            List<User> user = new List<User>();

            try
            {
                //var sql = @"SELECT * FROM [User] WHERE Deleted=0";

                var sql = @"SELECT * from [User] u LEFT JOIN  [CustomerUser] cu ON u.UserId = cu.CustomerUserId  WHERE u.Deleted=0";

                var lookUp = new List<User>();

                using (var cn = Settings.Helper.ConnectionStringBiz())
                {
                    cn.Open();

                    cn.Query<User,Customer,User>(sql,(u,c)=>
                    {
                        var myUser = lookUp.First(m => m.UserId == u.UserId);

                        if (myUser == null)
                        {
                            lookUp.Add(u);

                            myUser = u;
                        }

                        myUser.Customer = c;

                        return null;

                    },splitOn:"CustomerId");
                }

                return lookUp;
            }

            catch (Exception ex) 
            {
                return user;
            }
        }

如果您的 lookUp.First(m => m.UserId == u.UserId) 没有 return 任何结果,通常会出现问题。

如果没有找到符合条件的任何结果,您可以使用 FirstOrDefault 类似下面的内容而不是 First returns null(默认值)。

var myUser = lookUp.FirstOrDefault(m => m.UserId == u.UserId);

不确定您为什么要检查查找,它是您在连接到数据库之前创建的新列表。它永远是空的(如果我没有理解错的话)。