1

如果我有一个包含 A 列和 B 列的 SQL 表 X,并且我想选择 B 的 DATALENGTH 以及 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:无效的匿名类型成员声明符。必须使用成员分配、简单名称或成员访问来声明匿名类型成员。

4

1 回答 1

2

尝试显式指定匿名类型的成员名称:

var results = dc.X.Select(x => 
    new { Length = SqlFunctions.DataLength(x.B), A = x.A });
于 2013-02-27T08:09:27.107 回答