Как мне объединить все таблицы из моей базы данных с помощью linq, чтобы я мог искать ее в веб-приложении asp.net? - PullRequest
0 голосов
/ 27 июня 2019

Я делаю приложение, используя asp.net, где мне приходится искать данные из множества различных таблиц SQL-сервера.Эти таблицы имеют 1 таблицу сценариев, которая содержит общую информацию по каждому сценарию и связана со всеми остальными таблицами, которые содержат гораздо более подробную информацию об отдельных лицах в этом сценарии.Все остальные таблицы имеют в основном те же имена столбцов, но различную информацию и связаны с таблицей сценариев с помощью внешнего ключа с именем Id.Как объединить эти таблицы с помощью LINQ на странице .cshtml.cs, чтобы я мог передавать данные на страницу .cshtml и осуществлять поиск по всем данным.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using WebApp.Models;

namespace WebApp.Pages
{
    public class DataModel : PageModel
    {
        private readonly WebApp.Models.Context _context;
        public DataModel(WebApp.Models.Context context)
        {
            _context = context;
        }

        //making a list to pass to the .cshtml page

        public IList<Scenarios> Info { get; set; }
        //Just the general scenario data

        public IList<CorporateRewardsEnglish> CorpE { get; set; }
        public IList<CorporateRewardsHungarian> CorpH { get; set; }
        //Individual scenario data



        [BindProperty(SupportsGet = true)] public string SearchData { get; set; }
        //What will be searched

        public async Task OnGetAsync()
        {              
            //2 of the scenarios I need to combine(There are a lot more scenarios but just for the example)                
            var cre = from m in _context.CorporateRewardsEnglish
                      select m;
            var crh = from m in _context.CorporateRewardsHungarian
                      select m;

            if (!String.IsNullOrEmpty(SearchData))
            {
                cre = cre.Where(a => a.Email.Contains(SearchData));
                //crh = crh.Where(a => a.Title.Contains(SearchData));
                //currently can only search through one set of data
                //doesnt present anything when I try to search through both
            }

           CorpE = await cre.ToListAsync();
           //CorpH = await crh.ToListAsync();
           //sets the filtered data to the public variable that can be passed and presented in the .cshtml page      

        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...