ena*_*rik 8 t-sql eager-loading entity-framework-4.1
在EF 4,我可以通过编写SQL做导航性能的渴望装载DbContext.Database.SqlQuery或DbContext.Set<T>().SqlQuery?我似乎没有填充我的导航属性.
编辑
看来我可以使用DbContext.Set()进行eagerloading.SqlQuery,而不是DbContext.Database.SqlQuery.知道为什么吗?
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