如何在 dotnet core 中使用实体框架获取数据

2024-01-05

I have a table called "UserAnswers".below screenshot contains table data enter image description here

我想按 SurveyId 获取数据并按 CreatedBy 列进行分组。

举个例子 有一个用户叫“[电子邮件受保护] /cdn-cgi/l/email-protection“.此用户包含 4 个 SurveyId 记录。 我想要像下面这样

Answers : [
            {"2"},
            {"1","0","1","1"},
            {"1","2","4","3"},
            {"Blue"}] 

但我的代码为每一行返回这个数组。我的意思是返回重复的记录。

这是我的代码

 var qstns = await (from uans in _context.UserAnswers
                                       where uans.SurveyId == id
                                       select new UserAnswersReturnDto
                                       {
                                           UserEmail = uans.CreatedBy,
                                           Qustns = (from ans in _context.UserAnswers
                                                      where ans.CreatedBy == uans.CreatedBy 
                                                      select new UserAnswersSet
                                           {
                                               QNo = ans.QNo,
                                               Ansrs = JsonConvert.DeserializeObject<JArray>(string.IsNullOrEmpty(ans.Answers) ? "[]" : ans.Answers)
                                           }).ToArray() 

                                       }).ToListAsync();

那么如何解决这个问题。我针对这个问题提出了很多问题,但没有人回答。请帮助我。先谢谢了


您需要在返回之前对数据进行实际分组:

我使用了 LINQ Lambda 表示法,但如果您愿意的话,应该很容易翻译回查询:

var qstns = _context.UserAnswers.Where(uans => uans.SurveyId == id)
                                .GroupBy(uans => uans.CreatedBy)
                                .Select(grans => new UserAnswersReturnDto {
                                    UserEmail = grans.Key,
                                    Qustions = grans.Select(ans => new UserAnswersSet() {
                                        QNo = ans.QNo,
                                        Ansrs = ans.Answers
                                    }).ToList()
                                } ).ToList();

我没有时间仔细检查这一点,但我希望它可以作为帮助您解决问题的指南!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 dotnet core 中使用实体框架获取数据 的相关文章

随机推荐