Не удается найти метод CreateQuery()
Я новый новичок в Entity framework .
и я не могу найти следующий метод CreateQuery()
Почему я не могу найти этот метод ?!!
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()
надеюсь, что это помогает