2009-05-12 21 views
9

Todavía un poco nuevo en Linq. Esto me está volviendo loco. Quiero alias una columna, el alias debe tener un espacio.LINQ to SQL y Column Alias ​​con espacios

Esto funciona bien:

Dim q = From tmp in t.Table Select iDate = tmp.iDate 

Pero, quiero que esto funcione

Dim q = From tmp in t.Table Select "Some Alias With Space" = tmp.iDate 

¿Alguna idea?

+0

No puede utilizar caracteres de espacio en los nombres de variables – Daniel

Respuesta

3

En primer lugar, Alias ​​no puede tener espacios, al igual que cualquier nombre de variable no puede tener un espacio. Mi pregunta es ¿por qué querrías/necesitarías tener un espacio a tu nombre? Estoy seguro de que hay mejores medios para lograr lo que intenta lograr sin tratar de instituir malas prácticas de malas convenciones de nomenclatura.

+1

que sólo puede tener un espacio en su alias si está utilizando T-SQL, Seleccionar * de Mytable [Mi mesa Nombre]. Pero como dijo David, no tiene sentido tener espacio en tu código. Si realmente lo necesita, use el _ – CodeLikeBeaker

+1

¡Gracias! La razón para buscar un espacio es b/c los datos devueltos se encuentran en un IList "Devolver q.ToList" En este punto, simplemente ato esto a una cuadrícula rad. El encabezado de columna de cuadrícula toma los nombres de columna. Estaba buscando un enfoque simple para espacios en el encabezado de columna en la grilla. Sabiendo que el alias no puede tener espacios, modificaré el encabezado manualmente. ¡Gracias por las rápidas respuestas! – sugarcrum

0

Por lo que sé, no puede hacer esto porque las columnas alias deben ser identificadores de C# válidos, y no permiten espacios en blanco.

-1

No puede, lo siento. Demonios, si traes una tabla con un espacio en el nombre a Linq, automáticamente reemplazará el espacio con guiones bajos.

Además de que no es posible, es una idea extremadamente abrumadoramente mala. Algo por lo que la gente que escribió Access debe ser fotografiada.

2

Uso corchete de usar alias en LinqToSql como

[Some Alias With Space] = tmp.iDate 

si esto no funcionará a continuación, eliminar el espacio en blanco y el uso de []

+0

esta solución funcionó para mí –

2

Uso de alias sencilla antes de la columna o columnas:

var x = from data in mdc.Accounts 
select new 
{ 
    data.AccountName, 
    Total = data.CashAndEquivalent + data.MarginBalance 
}; 

//Total is the alias 
1

MEDIANTE EL USO DE LA TABLA DE DATOS

DataTable dt = (from x in obj.GetAllReqVSTFs() 
       select new 
        { 
         VSTF_id = x.VSTF_id, 
         x.Description, 
         x.PM1, 
         x.PM2, 
         x.Analyst_Status, 
         x.Overall_Status, 
         x.Planed_Analyst_End_Date 
        }).Take(5).ToList().ToDataTable(); 
foreach (DataColumn c in dt.Columns) 
{ 
    c.ColumnName = c.ColumnName.Replace("_", " "); 
} 

gvBurntHours.DataSource = dt; 
gvBurntHours.DataBind();