如果我有一个包含 A 列和 B 列的 SQL 表 X,并且我想选择 B 的数据长度以及 A 列,如何在单个表达式中执行此操作? 例如:
var results = dc.X.Select(x => SqlFunctions.DataLength(x.B))
将返回包含等于 B 长度的单列的结果。 如果我想将 A 包含在同一结果集中,该语句是什么样的? 我已经尝试过了,但显然无法编译:
var results = dc.X.Select(x => new { SqlFunctions.DataLength(x.B), x.A });
出现错误:
错误 CS0746:无效的匿名类型成员声明符。匿名类型成员必须使用成员赋值、简单名称或成员访问权限来声明。
尝试显式指定匿名类型的成员名称:
var results = dc.X.Select(x =>
new { Length = SqlFunctions.DataLength(x.B), A = x.A });
现在,您可以使用
EF.Functions.DataLength