выберите ширину сущности рамки и linq - PullRequest
0 голосов
/ 17 мая 2010

привет, есть 2 настольных миссии и дни миссий с отношением 1..n

Я хочу выбрать все миссии, в которых есть все дни миссий, с атрибутом «visible» = true

Я пробовал с:

 db.TDP_Missioni.Include("TDP_MissioniDestinazioni").where(p => p.TDP_MissioniDestinazioni.visible == true)

Но есть ошибка. Действительно из p.TDP_MissioniDestinazioni я не вижу атрибуты таблицы. Я думаю, что это потому, что отношения 1..n.

Как я могу это сделать?

спасибо

Ответы [ 2 ]

0 голосов
/ 17 мая 2010

Выше используются лямбда-выражения, а не LINQ. Попробуйте:

var query = from m in db.TDP_Missioni
            where m.TDP_MissioniDestinazioni.Any(md => md.Visible)
            select m;

Или чтобы исправить лямбда-запрос, прежде всего вам нужно использовать что-то вроде:

db.TDP_Missioni.Include("TDP_MissioniDestinazioni").
    Where(p => p.TDP_MissioniDestinazioni.Any(d => d.Visible));

TDP_MissioniDestinazioni по отношению к таблице TDP_Missioni является коллекцией (основанной на взаимосвязи), поэтому вам нужно перебирать каждую запись, которая может получить доступ к свойству visible каждого MissionDay.

0 голосов
/ 17 мая 2010

Поскольку отношение равно 1: N, TDP_MissionDestinazioni должно быть коллекцией дней миссии. Попробуйте это: db.TDP_Missioni.Include("TDP_MissioniDestinazioni").where(p => p.TDP_MissioniDestinazioni.All(d => d.visible))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...