В Java:
package somepackage;
class SomeClass {}
В C++:
namespace somenamespace {
class SomeClass {}
}
И использование их, Java:
import somepackage;
И C++:
using namespace somenamespace;
кроме того, полные имена "somepackge. SomeClass" для Java и "somenamespace:: SomeClass" для C++. Используя те соглашения, можно организовать как Вы, привыкли к в Java, включая создание соответствия именам папок для пространств имен. Папка-> пакет и файл-> требования класса не там, хотя, таким образом, можно назвать папки и классы независимо от пакетов и пространств имен.
Основываясь на ответе Марка. Если вы сделаете это:
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
Что-то вроде этого должно работать:
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;