Стремительная загрузка в EntityFramework с DbContext.Database.SqlQuery - PullRequest
8 голосов
/ 04 февраля 2012

Можно ли в EF 4 активно загружать свойства навигации, написав sql на DbContext.Database.SqlQuery или DbContext.Set<T>().SqlQuery? Кажется, я не заполняю свои навигационные свойства.

Редактировать

Кажется, я могу загружать с помощью DbContext.Set (). SqlQuery, но не DbContext.Database.SqlQuery. Есть идеи почему?

1 Ответ

4 голосов
/ 04 февраля 2012

DbSet.SqlQuery работает иначе, чем Database.SqlQuery.Метод в DbSet применяется к данному набору сущностей.Он должен возвращать сущности данного типа, и по умолчанию возвращаемые сущности будут отслеживаться.Database.SqlQuery может возвращать любой объект (возможно, не сущность), и возвращаемые объекты никогда не отслеживаются контекстом.Вы также можете взглянуть на msdn для сравнения обоих методов:

Database.SqlQuery - http://msdn.microsoft.com/en-us/library/gg679117(v=vs.103).aspx

DbSet.SqlQuery - http://msdn.microsoft.com/en-us/library/system.data.entity.dbset.sqlquery(v=VS.103).aspx

...