Linq to SQL选择新关键字并分配列别名
本文关键字:分配 别名 关键字 to SQL 选择 Linq | 更新日期: 2023-09-27 17:49:45
我想给linq中的另一个列分配别名,选择new keyword my code is
var query=from d in db.tblAttributeDatas
select new
{
a=d.strValue,
b=a
};
但是编译器给我错误。
无法解析符号a
.
不能这样使用别名。
使用let
必须这样做:
var query=from d in db.tblAttributeDatas
let str = d.strValue // hold value here
select new
{
a=str, // now assign here
b=str
};
基本上,由于对象初始化器的性质(即:使用对象文字符号{ ... }
初始化对象),您不能这样做。
这行简单的代码…
var x = new { a = 1, b = 2 };
…在IL代码中执行为…
<>f__AnonymousType0<System.Int32,System.Int32>..ctor
因此,您可以看到创建匿名类型时具有两个参数的构造函数。假设此构造函数可见为…
class X
{
public X(int a, int b) { }
}
很明显,你不能通过
来调用这个构造函数var x = new X(1, a);
必须提供两个值。一个构造函数参数不能"借用"另一个参数的值。
赋相同的值给b ..没有害处……
var query = from d in db.tblAttributeDatas
select new
{
a = d.strValue,
b = d.strValue
};