Линк один ко многим (родительские и дочерние объекты), используя критерии для дочерних объектов - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть три сущности

Form
 FormProducts (one to Many attach to Form)
 FormFields (one to Many attach to Form)

Когда я получаю форму (используя приведенный ниже код), FormProducts и FormFields неявно присоединяются к форме, что нам и требуется.

Form result = Forms.Where(f => f.Code == "form1").FirstOrDefault()

Пока все хорошо, но появилось новое требование, что мы также должны проверить критерии продукта для активных продуктов.

Есть ли простой способ сделать это? или я должен использовать explicity использовать join со всеми тремя сущностями.

Я выгляжу примерно так просто:)

Form result = Forms.Where(f => f.Code == "form1" && f.FormProducts.status == "active").FirstOrDefault()

UPDATE: Извините, если я не дал понять, рассмотреть следующие данные в таблицах

Form 
id, code(unique)
1, form1, 
2, form2
3, form3

FormProduct
id, formid, name, status
1, 1, prod1, true
2, 1, prod2, false
3, 1, prod3, true

FormField
id, formid, name
1, 1, field1
2, 1, field1
3, 1, field1

Мне нравится получать form1 и все его поля формы и все активные формы продуктов. Что означает, что Prod2 не должен быть включен.

1 Ответ

0 голосов
/ 05 сентября 2018

Я не уверен, что это лучший способ достичь этого, но именно так я и рассчитываю на это, пока не найду лучший путь.

Form result = Forms.Where(f => f.Code == "form1").FirstOrDefault()
result.FormProducts = result.FormProducts.Where(f.FormProducts.status == "active").ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...