2009-05-12 2 views
9

Еще немного для Linq. Это сводит меня с ума. Я хочу, чтобы псевдоним столбца, псевдоним должен иметь пробел.LINQ to SQL и столбцы Псевдоним с пробелами

Это прекрасно работает:

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

Но я хочу, чтобы это работало

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

Любые идеи?

+0

Вы не можете использовать пробелы в именах переменных – Daniel

ответ

3

Прежде всего, у Alias ​​не может быть пробелов, так же как любое имя переменной не может иметь пробел. Мой вопрос, почему вы хотите/должны иметь место на свое имя? Я уверен, что есть более эффективные средства для достижения того, чего вы пытаетесь достичь, пытаясь внедрить плохую практику плохих соглашений об именах.

+1

Вы можете иметь только пространство в псевдониме, если вы используете T-SQL, выберите * из MYTABLE [My Table Name]. Но, как сказал Дэвид, в вашем коде нет места. Если вам действительно нужно, используйте _ – CodeLikeBeaker

+1

Спасибо! Причина поиска пробела - это b/c, данные возвращены в IList «Возврат q.ToList» В этот момент я просто привязываю это к сетке рада. Заголовок столбца сетки принимает имена столбцов. Я искал простой подход для пробелов в заголовке столбца на сетке. Зная, что у псевдонима не может быть пробелов, я изменю заголовок вручную. Спасибо за быстрые ответы! – sugarcrum

0

Насколько я знаю, вы не можете этого сделать, потому что псевдоним столбцов должен быть действительным идентификатором C#, и они не допускают пробелов.

-1

Вы не можете, извините. Черт, если вы принесете таблицу с пробелом в имени в Linq, она автоматически заменит пространство символами подчеркивания.

Кроме того, это невозможно, это чрезвычайно подавляющая плохая идея. Что-то, что люди, которые писали Access, должны быть расстреляны из-за.

2

Используйте квадратные скобки, чтобы использовать псевдоним в LinqToSql как

[Some Alias With Space] = tmp.iDate 

, если это не будет работать, а затем удалить пустое пространство и использовать []

+0

это решение работало для меня –

2

Использовать простой псевдоним перед колонки или колонки:

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

//Total is the alias 
1

ПО ИСПОЛЬЗОВАНИЮ ТАБЛИЦЫ DATA

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(); 
Смежные вопросы