Я делаю приложение, используя 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
}
}
}