Я вижу все виды примеров, которые не соответствуют моему сценарию.Я не знаю, как я заставил свой LINQ работать, чтобы загрузить индексное представление всех строк.Но теперь я хочу отфильтровать строки.Я могу жестко закодировать предложение WHERE, которое сделает это.Однако мне нужно динамически создавать предложение WHERE во время выполнения, что я делал много раз на других языках.
Courses = await _context.Courses
.Select(p => new CoursesVM
{
OESACID = p.OESACID,
CourseTitle = p.CourseTitle,
Instructor = p.Instructor,
Locations = p.Locations,
Dates = p.Dates,
CEUDWP = p.CEUDWP,
CEUDEQ = p.CEUDEQ,
CEUonsiteInstall = p.CEUonsiteInstall,
CEUonsiteOandM = p.CEUonsiteOandM,
MaxCEU = p.MaxCEU,
SponsorID = p.SponsorID,
MrMs = p.MrMs,
CurrentContactName = p.CurrentContactName,
ContactBizName = p.ContactBizName,
ContactAddress = p.ContactAddress,
ContactCity = p.ContactCity,
ContactState = p.ContactState,
ContactZip = p.ContactZip,
CurrentContactPhone = p.CurrentContactPhone,
CurrentContactFax = p.CurrentContactFax,
CurrentContactEmail = p.CurrentContactEmail,
DateRec = p.DateRec,
FeeRec = p.FeeRec,
CheckNumber = p.CheckNumber,
PrelimAprvDate = p.PrelimAprvDate,
MailedReceipt = p.MailedReceipt,
FinalAprvDate = p.FinalAprvDate,
MailedFinal = p.MailedFinal,
HomeStudy = p.HomeStudy,
Recurring = p.Recurring,
PutOnCommitteeList = p.PutOnCommitteeList,
FinalLetterSent = p.FinalLetterSent,
URL = p.URL,
//ThreeYearLetterSent = p.ThreeYearLetterSent,
TakeOffWeb = p.TakeOffWeb,
Inactive = p.Inactive
}).Where(p => [FieldName]!= null && p.FinalAprvDate >= threeYearsAgo).OrderByDescending(p => p.OESACID).ToListAsync();
Обратите внимание на [FieldName] в скобках.Это то, что я пытаюсь динамически изменить.В зависимости от того, что отправляется из списка выбора.Если этот параметр выбран, то я хочу, чтобы предложение WHERE возвращало только те строки, в которых этот столбец не равен NULL:
public async Task OnGetAsync(String CEUType)
enter code here
switch(CEUType)
{
case "DWP":
what goes here???
break;
case "DEQ":
what goes here???
break;
case "OnSite":
what goes here???
break;
case "HomeStudy":
what goes here???
break;
}
Я не уверен, как это сделать.Мой запрос Linq немного отличается от всех примеров тем, что в конце находится предложение WHERE.
Существует 4 типа CEU.Можно выбрать из выпадающего списка.Затем код должен использовать столбец с этим типом, чтобы проверить, если! = Null.