簡體   English   中英

linq to sql選擇新關鍵字並分配列別名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM