在EF 4中,我可以通过在DbContext.Database.SqlQueryDbContext.Set<T>().SqlQuery上编写sql来急于加载导航属性吗?我似乎没有填充我的导航属性。

编辑

似乎我可以使用DbContext.Set()。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

关于tsql - 使用DbContext.Database.SqlQuery在EntityFramework中快速加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9136923/

10-13 05:49