【问题标题】:Sequence contains no matching element error when I try to getallUsers()当我尝试 getallUsers() 时,序列不包含匹配元素错误
【发布时间】:2018-07-27 02:51:17
【问题描述】:

您好,我的问题是我有 2 个表,其中一个是 User 表,另一个是 CustomerUsers 我通过 Deleted=0 选择它们 当我尝试列出所有用户并拥有 customerId 时,我遇到了序列不包含匹配元素错误的问题 我的代码低于任何帮助将是 appriciate

谢谢

我的 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;
            }
        }

【问题讨论】:

    标签: c# .net entity-framework model-view-controller dapper


    【解决方案1】:

    如果您的lookUp.First(m =&gt; m.UserId == u.UserId) 没有返回任何结果,通常会出现问题。

    您可以使用FirstOrDefault 代替 First,如果它没有找到任何匹配条件的结果,则返回 null(默认值)。

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

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

    【讨论】:

    • 非常感谢您的回答:)
    • 不客气。如果您的问题得到解决,您能否将其标记为答案,以便帮助其他面临此问题的人?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多