【问题标题】:ExecuteStoreQuery with Dbcontext使用 Dbcontext 执行存储查询
【发布时间】:2011-12-28 13:15:14
【问题描述】:

我想使用 Entity Framework 的 ExecuteStoreQuery 函数,我想知道我的上下文变量没有 ExecuteStoreQuery 方法。

所以,我发现它是ObjectContext 类的方法,但我已经在我的应用程序中使用了DbContext。 我只是尝试将DbContext 更改为ObjectContext,但它带来了一些错误(例如,在ObjectContext 中不是OnModelCreating 方法)。

如何将ExecuteStoreQuery 与 DbContext 一起使用,如果不能,是否可以在 DbContext 中使用 ExecuteStoreQuery 的替代品?

【问题讨论】:

    标签: c# linq entity-framework objectcontext dbcontext


    【解决方案1】:

    DbContext 只是 ObjectContext 的包装。

    您仍然可以使用IObjectContextAdapter 访问原始ObjectContext

    (dbContext as IObjectContextAdapter).ObjectContext;
    

    【讨论】:

    • 我在我的应用程序中成功使用了这个方法。
    【解决方案2】:

    我想补充一点,我认为现在正确的方法是:

    dbContext.Database.SqlQuery<T>(string sql);
    

    【讨论】:

    • 如果您想跟踪对返回对象的更改,您应该考虑 dbContext.tablename.SqlQuery(...) 其中 tablename 是您的集合名称。 (即一个 DbSet)
    猜你喜欢
    • 1970-01-01
    • 2017-10-31
    • 2019-04-23
    • 2013-01-21
    • 2011-07-06
    • 2014-07-11
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    相关资源
    最近更新 更多