Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用DbContext的实体Sql查询_.net_Entity Framework_Dbcontext_Objectcontext - Fatal编程技术网

.net 使用DbContext的实体Sql查询

.net 使用DbContext的实体Sql查询,.net,entity-framework,dbcontext,objectcontext,.net,Entity Framework,Dbcontext,Objectcontext,将实体框架项目从ObjectContext迁移到DbContext,我发现没有办法直接使用DbContext执行E-Sql查询字符串。(实体SQL不是SQL,而是类似SQL的查询语言,请参见此) 以前的代码如下所示: (其中,AdventureWorksEntities现在是一个DbContext) 这确实有效。但是,由于我宁愿限制我使用的API的数量,有没有一种方法可以直接从DbContext执行E-SQL查询,而不必显式地访问底层的ObjectContext (顺便说一句,我不需要使用Obj

将实体框架项目从
ObjectContext
迁移到
DbContext
,我发现没有办法直接使用
DbContext
执行E-Sql查询字符串。(实体SQL不是SQL,而是类似SQL的查询语言,请参见此)

以前的代码如下所示:

(其中,
AdventureWorksEntities
现在是一个
DbContext

这确实有效。但是,由于我宁愿限制我使用的API的数量,有没有一种方法可以直接从
DbContext
执行E-SQL查询,而不必显式地访问底层的
ObjectContext


(顺便说一句,我不需要使用
ObjectQuery
。我知道我可以轻松地将这些示例转换为使用其他查询解决方案(如Linq)的实体,但我当前的用例现在需要使用E-SQL查询字符串。)

此链接用于原始SQL查询。与E-SQL查询有什么关系?哦,我的错误是,没有发现区别。
using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    string myQuery = @"SELECT p.ProductID, p.Name FROM 
        AdventureWorksEntities.Products as p";

    foreach (DbDataRecord rec in
        new ObjectQuery<DbDataRecord>(myQuery, context))
    {
        Console.WriteLine("ID {0}; Name {1}", rec[0], rec[1]);
    }
}
using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    string myQuery = @"SELECT p.ProductID, p.Name FROM 
        AdventureWorksEntities.Products as p";

    foreach (DbDataRecord rec in
        new ObjectQuery<DbDataRecord>(myQuery,
            ((IObjectContextAdapter)context).ObjectContext))
    {
        Console.WriteLine("ID {0}; Name {1}", rec[0], rec[1]);
    }
}