[英]linq to sql select new keyword and assign column alias name
我想將列別名分配給linq中的另一列以sql選擇新關鍵字我的代碼是
var query=from d in db.tblAttributeDatas
select new
{
a=d.strValue,
b=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
};
給b賦相同的值..沒有傷害..
var query = from d in db.tblAttributeDatas
select new
{
a = d.strValue,
b = d.strValue
};
基本上,由於對象初始值設定項的性質(即:使用對象文字符號{ ... }
初始化對象),您無法執行此操作。
這行簡單的代碼...
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);
您必須提供兩個值。 一個構造函數自變量不能“借用”另一個自變量的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.