Asp.net

LINQ:自定義列名

  • September 24, 2008

更新

我基本上將查詢綁定到 WinForms DataGridView。我希望列標題合適,並在需要時有空格。例如,我想要一個列標題First Name而不是FirstName.


如何在 LINQ 中創建自己的自定義列名?

例如:

Dim query = From u In db.Users _
           Select u.FirstName AS 'First Name'

我解決了自己的問題,但是您的所有答案都非常有幫助,並為我指明了正確的方向。

在我的LINQ查詢中,如果列名有多個單詞,我會用下劃線分隔單詞:

Dim query = From u In Users _
           Select First_Name = u.FirstName

然後,在 的Paint方法中DataGridView,我用空格替換了標題中的所有下劃線:

Private Sub DataGridView1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles DataGridView1.Paint
   For Each c As DataGridViewColumn In DataGridView1.Columns
       c.HeaderText = c.HeaderText.Replace("_", " ")
   Next
End Sub

正如 CQ 所說,您不能為欄位名稱留出空格,但是您可以返回新列。

var query = from u in db.Users
           select new
           {
               FirstName = u.FirstName,
               LastName = u.LastName,
               FullName = u.FirstName + " " + u.LastName
           };

然後你可以從上面綁定到變數查詢或循環遍歷它……

foreach (var u in query)
{
  // Full name will be available now 
  Debug.Print(u.FullName); 
}

如果您想重命名列,可以,但不允許使用空格。

var query = from u in db.Users
           select new
           {
               First = u.FirstName,
               Last = u.LastName
           };

將 FirstName 重命名為 First,LastName 重命名為 Last。

引用自:https://stackoverflow.com/questions/128277