gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:20 25 4
gpt4 key购买 nike

你好,我的问题是我有 2 个表,一个是 User 表,另一个是 CustomerUsers 我通过 Deleted=0 选择它们当我尝试列出所有用户并拥有 customerId 时,我遇到序列不包含匹配元素错误的问题< br/>我的代码在任何帮助下都是合适的

谢谢

我的 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) 没有返回任何结果,通常会出现问题。

您可以使用如下所示的 FirstOrDefault 而不是 First,如果它没有找到符合条件的任何结果,则返回 null(默认值)。

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

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

关于c# - 当我尝试 getallUsers() 时,序列不包含匹配元素错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48822641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com