找不到CreateQuery()方法
我是entity framework的新手。
我找不到以下方法CreateQuery()
为什么我找不到这种方法?!!
由于ESQL被认为是高级用例,因此DbContext
没有直接的API。 您可以访问支持DbContext
的ObjectContext
来执行您想要的操作:
((IObjectContextAdapter)context).ObjectContext.CreateQuery("esql..")
相关: http : //thedatafarm.com/blog/data-access/accessing-objectcontext-features-from-ef-4-1-dbcontext/
正如那里所建议的,您还可以向上下文类添加方法(或属性) ObjectContext
:
public class BloggingContext : DbContext { public DbSet Blogs { get; set; } public DbSet 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()
希望这可以帮助