Linq к объектам - ищущий в свойствах навигации EntityCollection

В Java:

package somepackage;
class SomeClass {}

В C++:

namespace somenamespace {
    class SomeClass {}
}

И использование их, Java:

import somepackage;

И C++:

using namespace somenamespace;

кроме того, полные имена "somepackge. SomeClass" для Java и "somenamespace:: SomeClass" для C++. Используя те соглашения, можно организовать как Вы, привыкли к в Java, включая создание соответствия именам папок для пространств имен. Папка-> пакет и файл-> требования класса не там, хотя, таким образом, можно назвать папки и классы независимо от пакетов и пространств имен.

5
задан LukLed 8 November 2009 в 19:00
поделиться

2 ответа

Основываясь на ответе Марка. Если вы сделаете это:

var q = from i in invoices.Include("something")
        from p in i.Positions
        where p.GroupName == "Fuel"
        select i;

Включение потеряно (см. этот совет ), потому что EF теряет все включения, если форма запроса изменяется, например, если вы выполняете неявные объединения, как в запросе SelectMany, ака из от.

Обходной путь - написать запрос, а затем в конце применить Include.

Примерно так:

var q = ((from i in invoices
        from p in i.Positions
        where p.GroupName == "Fuel"
        select i) as ObjectQuery<Invoice>).Include("something");

Если вы сделаете это, Entity Framework действительно включит.

Надеюсь, это поможет

Alex

5
ответ дан 14 December 2019 в 08:53
поделиться

Что-то вроде этого должно работать:

var q = from i in invoices
        from p in i.Positions
        where p.GroupName == "Fuel"
        select i;

Однако это использует свойство навигации Positions , которое по умолчанию не загружается (Entity Framework использует явную загрузку) . Однако он будет работать, если переменная invoices была создана следующим образом:

var invoices = from i in myObjectContext.Invoices.Include("Positions")
               select i;
2
ответ дан 14 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: