Не удается найти метод CreateQuery()

Я новый новичок в Entity framework .

и я не могу найти следующий метод CreateQuery()


enter image description here

Почему я не могу найти этот метод ?!!

2 ответов


поскольку 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;
    }
}

прежде всего, это не собственное решение для запроса в EF. Пожалуйста, изучите как можно больше LINQ, а затем, если вы знаете, что вам действительно нужны альтернативные методы, вернитесь к CreateQuery ()

но вы можете получить результат, который хотите, с помощью кастинга в System.Data.Entity.Core.Objects.IObjectContextAdapter такой:

(context as IObjectContextAdapter).ObjectContext.CreateQuery

кроме того, вы можете запускать команды SQL с:

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

надеюсь, что это помогает