Я хочу использовать динамический , где для получения данных из пользовательского интерфейса поиска с несколькими условиями. Также есть ViewModel, который заполняет из двух таблиц запросом на соединение, это мой код:
public async Task<IEnumerable<Model.ViewModels.KarApplicantViewModel>> GetAllByGroupAsync(string marital ,string gender, string Degree,string Isargari)
{
var query = _db.KarApplicants
.Include(n => n.Gender)
.Include(n => n.MaritalStatus)
.Include(n => n.MilitaryStatus)
.Join(_db.KarApplicantScores,
kar1 => kar1.Id,
kar2 => kar2.KarApplicantId,
(kar1, kar2) => new { KarApplicant = kar1, KarApplicantScore = kar2 }).AsQueryable();
if (marital == "single")
{
query.Where(x => x.KarApplicant.KarMaritalStatusId == 1);
}
KarApplicantScore = kar2 })
//IEnumerable<KarApplicantViewModel> gg;
//query = _db.KarApplicants
// .Include(n => n.Gender)
// .Include(n => n.MaritalStatus)
// .Include(n => n.MilitaryStatus)
// .Join(_db.KarApplicantScores,
// kar1 => kar1.Id,
// kar2 => kar2.KarApplicantId,
// (kar1, kar2) => new { KarApplicant = kar1, KarApplicantScore = kar2 })
return await query.Select(m => new KarApplicantViewModel
{
Name = m.KarApplicant.Name,
LastName = m.KarApplicant.LastName,
FatherName = m.KarApplicant.FatherName,
NCode = m.KarApplicant.NCode,
BirthDate = m.KarApplicant.BirthDate,
KarMaritalStatus = m.KarApplicant.MaritalStatus,
GPA = m.KarApplicantScore.GPA,
KarFieldOfStudy = m.KarApplicantScore.KarFieldOfStudy,
KarDegreeOfEducation = m.KarApplicantScore.KarDegreeOfEducation,
KarPeriorityPlace = m.KarApplicantScore.KarPeriorityPlace,
KarNative = m.KarApplicantScore.KarNative,
Email = m.KarApplicant.Email,
Address = m.KarApplicant.Address,
ActDuration = m.KarApplicantScore.ActDuration,
BirthPlace = m.KarApplicant.BirthPlace,
CorrentLocation = m.KarApplicant.CorrentLocation,
DegreeDate = m.KarApplicantScore.DegreeDate,
Description = m.KarApplicantScore.Description,
DrivingLicence = m.KarApplicantScore.DrivingLicence,
Gender = m.KarApplicant.Gender,
KarGenderId = m.KarApplicant.KarGenderId,
KarIsargari = m.KarApplicantScore.KarIsargari,
KarIsargarRelation = m.KarApplicantScore.KarIsargarRelation,
KarLanguageSkill = m.KarApplicantScore.KarLanguageSkill,
KarMilitaryStatus = m.KarApplicant.MilitaryStatus,
KarRelativsWork = m.KarApplicantScore.KarRelativsWork,
Mobile = m.KarApplicant.Mobile,
Phone = m.KarApplicant.Phone,
PlaceOfDegree = m.KarApplicantScore.PlaceOfDegree,
PN = m.KarApplicant.PN,
RelativeSkill = m.KarApplicantScore.RelativeSkill,
PostalCode = m.KarApplicant.PostalCode,
Resume = m.KarApplicantScore.Resume,
KarApplicantId = m.KarApplicant.Id
}).ToListAsync();
В коде «Выше» оставьте код комментария, потому что вы знаете, что изменили мою позицию кода запроса, но не получили хорошего результата.
Я использую> много Где с условием multi перед TolistAsync ();
изменить объединение до, где или после TolistAsync (), но запрос вернет одну и ту же запись, использовать расширение для многих сайтов, но конфликтовать с другим кодом, например, с классом подкачки