1. год назад
    Добавлено год назад Darlok

    Пытаюсь с помощью LINQ сделать запрос к базе данных через EF.

    Левое соединение реализую так

    from m in context.Maps
                           join o in context.OwnerShips on m equals o.Map into temp
                           from t in temp.DefaultIfEmpty()
                           where (t.SomeBool || t.Equals(null))
    select new ...

    Но меня сильно смущает применение условия "where" отдельно от соединения так как это не оптимальный запрос, по идее условие надо поставить в условие соединения, но я не понимаю как это сделать после ключевого слова "on" на пример в запросе SQL

    select *
    from Maps
    left outer join OwnerShips on (Maps.Id = OwnerShips.MapId and OwnerShips.SomeBool )

    Подскажите как на LINQ красиво и правильно сделать?

  2. И ещё вопрос по LINQ

    Полное внешнее соединение (full outer join) - впрямую нельзя написать?
    только через три запроса левое + правое + объединение (left + right + union) ?

или зарегистрируйтесь чтобы ответить