Я пытаюсь создать запрос Linq, который будет возвращать Ienumerable в .net Core.
У меня есть 2 таблицы: одна, которая определяет элементы множественного выбора для внешнего интерфейса, а другая, которая фактически имеетнесколько выбранных значений сохраняются из пользовательского ввода.
Я ударился о кирпичную стену соединением Linq, которое имеет более одного условия.Сначала я пройду свой путь, но я надеюсь, что кто-то, кто сделал то, что я делаю, может поделиться со мной тем, что его / ее лучшее решение было для SelectList.
[RAW SQL]
SELECT
ot.OrganizationTypeText
, ot.OrganizationTypeValue
, si.OrganizationTypeSelectedItemValue
, CASE WHEN si.OrganizationTypeSelectedItemValue IS NULL then 0
ELSE 1
END AS selected
FROM [Organization.OrganizationType] ot
LEFT JOIN [Organization.OrganizationTypeSelectedItem] si ON (si.OrganizationID = 1)
AND (si.OrganizationTypeSelectedItemValue = ot.OrganizationTypeValue)
ORDER BY ot.OrganizationTypeDisplayOrder
[LINQ QUERY SO FAR]
var query = from ot in _db.OrganizationType
join si in _db.OrganizationTypeSelectedItem on ot.OrganizationTypeValue equals si
.OrganizationTypeSelectedItemValue
select new SelectListItem
{
Text = ot.OrganizationTypeText,
Value = ot.OrganizationTypeValue.ToString(),
Selected = (si.OrganizationTypeSelectedItemValue == null) ? false : true
};
[DESIRED RETURN RESULTS TO WORK WITH]
Text Value debug Selected
Customer 1 1 1
Partner 2 NULL 0
Donor 3 3 1
Sponsor 4 4 1
Vendor 5 NULL 0
Lead 6 NULL 0
Prospect 7 NULL 0
Я ожидалэто так же просто, как в сыром SQL, но я только что обнаружил, что Linq не любит множественные выражения в соединениях.Нулевое значение, которое нужно интерпретировать как ложно выбранный элемент, вызывает у меня головные боли при попытках выбора, которые я пытаюсь выполнить.