Inner Join с несколькими списками - PullRequest
1 голос
/ 15 октября 2019

У меня есть вопрос о внутреннем соединении для множественного списка. Сначала у меня есть ViewModel с именем AdminSettingsModel

    public partial class AdminSettingsModal
{
   public List<ReportTypes> reportTypes { get; set; }
   public List<UserType> userType { get; set; }     

}

    public partial class ReportTypes
{
    public int Id { get; set; }
    public string ReportName { get; set; }
    public int? UserType { get; set; }
    public string IconPath { get; set; }
    public string ModuleName { get; set; }
    public int GotSop { get; set; }
    public int ThirdParty { get; set; }
}

    public partial class UserType
{
    public int Id { get; set; }
    public string Type { get; set; }
    public string Access { get; set; }
}

И мне нужно вернуть userType и Reporttype (необходимо внутреннее соединение с userType) в контроллере.

        public async Task<IActionResult> Index()
    {
        AdminSettingsModal admin = new AdminSettingsModal();
        admin.userType = await _context.UserType.ToListAsync();
        admin.reportTypes = await _context.ReportTypes.ToListAsync();

        return View(admin);
    }
  1. Любая идея или какя должен делать, если хотите использовать метод внутреннего соединения, например, sql выглядит следующим образом:

SELECT reportTypes.Id, reportTypes.ReportName, userType.Type FROM reportTypes INNER JOIN userType ON reportTypes.UserType = userType. Id;

Спасибо

1 Ответ

0 голосов
/ 15 октября 2019

Ваш SQL-запрос

SELECT reportTypes.Id, reportTypes.ReportName, userType.Type FROM reportTypes 
INNER JOIN userType ON reportTypes.UserType = userType.Id;

Создание одного класса модели для отчета

public class ReportModel
{
    public int Id {get;set;}
    public string ReportName {get;set;}
    public int Type {get;set;}
}

Запрос внутреннего объединения

var oJoinData = from userType in _context.UserType 
JOIN ReportTypes in _context.ReportTypes ON
userType.Id = ReportTypes.UserType
select new ReportModel 
{
    Id = userType.Id,ReportName=ReportTypes.ReportName,Type = reportTypes.UserType
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...