找不到的createQuery()方法(Can't find CreateQuery() m

2019-07-18 16:30发布

我是一个新的初学者到实体框架。

我不能发现以下方法的createQuery()


为什么我不能找到这个方法?!

Answer 1:

由于ESQL被认为是一种先进的使用情况下,有从没有直接的API DbContext 。 您可以访问ObjectContext是备份你DbContext做你想要什么:

((IObjectContextAdapter)context).ObjectContext.CreateQuery<Person>("esql..")

相关阅读: http://thedatafarm.com/blog/data-access/accessing-objectcontext-features-from-ef-4-1-dbcontext/

至于建议在那里,你也可以将方法(或属性)添加ObjectContext对上下文类:

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    public ObjectContext ObjectContext()
    {
        return (this as IObjectContextAdapter).ObjectContext;
    }
}


Answer 2:

首先,这不是在EF查询本地的解决方案。 请学习尽可能多LINQ,你可以,然后,如果你知道你真正需要的替代方法,回落到的createQuery()

但是,你可以得到你想要铸造结果System.Data.Entity.Core.Objects.IObjectContextAdapter是这样的:

(context as IObjectContextAdapter).ObjectContext.CreateQuery

此外,您还可以运行SQL命令:

context.Database.SqlQuery<>()context.Database.ExecuteSqlCommand()

希望这可以帮助



文章来源: Can't find CreateQuery() method