我想将列别名分配给linq中的另一列到sql select new keyword我的代码是
var query=from d in db.tblAttributeDatas
select new
{
a=d.strValue,
b=a
};
但编译器给我错误。
无法解析符号
答案 0 :(得分:1)
你不能那样使用别名。
您必须使用let
这样做:
var query=from d in db.tblAttributeDatas
let str = d.strValue // hold value here
select new
{
a=str, // now assign here
b=str
};
答案 1 :(得分:0)
为b分配相同的值..没有害处..
var query = from d in db.tblAttributeDatas
select new
{
a = d.strValue,
b = d.strValue
};
答案 2 :(得分:0)
基本上,由于对象初始值设定项的性质(即:使用对象文字符号{ ... }
初始化对象),因此无法执行此操作。
这段简单的代码......
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);
您必须提供两个值。一个构造函数参数不能&#34; t&#34;借用&#34;另一个论点的价值。