&引用;选择值";-LINQ/实体框架查询中的value关键字
在这句话中,关键字“value”是什么意思?我应该去哪里了解更多信息?&引用;选择值";-LINQ/实体框架查询中的value关键字,linq,entity-framework,linq-to-entities,Linq,Entity Framework,Linq To Entities,在这句话中,关键字“value”是什么意思?我应该去哪里了解更多信息? 如果我省略了关键字“value”,会发生什么?在下面的代码中,z是一个实体框架类 string queryString = "SELECT VALUE q from x.zs as q where q.a = @parm;" ObjectQuery<z> query = context.CreateQuery<z> (queryString, new ObjectParameter("par
如果我省略了关键字“value”,会发生什么?在下面的代码中,z是一个实体框架类
string queryString = "SELECT VALUE q from x.zs as q where q.a = @parm;"
ObjectQuery<z> query = context.CreateQuery<z>
(queryString, new ObjectParameter("parmname",parmvalue));
return query.First();
string queryString=“从x.zs中选择值q作为q,其中q.a=@parm;”
ObjectQuery=context.CreateQuery
(queryString,新的ObjectParameter(“parmname”,parmvalue));
返回query.First();
(这是考试练习题的一部分)
上述代码位于返回z类型变量的函数中 这就是语法Value
关键字只允许指定一个值,不添加行包装器
阅读
实体SQL支持SELECT子句的两种变体。第一
变量row select由select关键字标识,可以
用于指定应投影的一个或多个值。
因为行包装器是围绕返回的值隐式添加的,
查询表达式的结果始终是多行集
行select中的每个查询表达式都必须指定一个别名。如果没有
如果指定了别名,实体SQL将尝试使用
别名生成规则
SELECT子句的另一个变体value SELECT由
选择值关键字。它只允许指定一个值,
并且不添加行包装器
因此,如果要从查询中具体化z
对象,应该使用SELECT VALUE
语法(否则会出现异常:从MaterializedDataRecord转换为z类型无效)
如果没有VALUE
关键字,您将获得一组行:
string esql = "SELECT q from x.zs as q where q.a = @parm;";
ObjectQuery<DbDataRecord> query = context
.CreateQuery<DbDataRecord>(esql, new ObjectParameter("parm",parmvalue));
var result = query.First();
string esql=“从x.zs中选择q作为q,其中q.a=@parm;”;
ObjectQuery=上下文
.CreateQuery(esql,新对象参数(“parm”,parmvalue));
var result=query.First();