При использовании Linq to SQL с хранимыми процедурами, должны ли столбцы char (1) возвращаться как c # chars? - PullRequest
1 голос
/ 16 сентября 2008

При использовании Linq to SQL и хранимых процедур класс, сгенерированный для описания набора результатов процедуры, использует свойства char для представления столбцов char (1) в процедуре SQL. Я бы предпочел, чтобы это были строки - есть ли простой способ сделать это?

Ответы [ 4 ]

3 голосов
/ 16 сентября 2008

Вы можете изменить файл {database} .designer.cs. У меня нет под рукой, чтобы проверить, но я считаю, что это довольно просто - вам нужно будет просто просмотреть большой объем кода и не забыть повторно применить изменение, если вы когда-нибудь его регенерируете.

Кроме того, вы можете создать свой собственный класс и обрабатывать его в select. Например, учитывая сгенерированный класс LINQ:

class MyTable
{      int MyNum {get; set;}
       int YourNum {get; set;}
       char OneChar {get; set;}
}

Вы можете легко создать:

class MyFixedTable
{      int MyNum {get; set;}
       int YourNum {get; set;}
       string OneChar {get; set;}
   public MyFixedTable(MyTable t)
   {
         this,MyNum = t.MyNum;
         this.YourNum = t.YourNum;
         this.OneChar = new string(t.OneChar, 1);
   }
}

Тогда вместо записи:

var q = from t in db.MyTable
        select t;

запись

var q = from t in db.MyTable
        select new MyFixTable(t);
0 голосов
/ 06 октября 2008

Просто зайдите в окно дизайнера и измените тип на строку. Я делаю это все время, так как считаю, что Strings проще в использовании, чем Char в моем коде.

0 голосов
/ 16 сентября 2008
var whatever =
    from x in something
    select new { yourString = Char.ToString(x.theChar); }
0 голосов
/ 16 сентября 2008

Не знаю, почему вы хотите это сделать. Базовый тип данных не может хранить более одного символа, представив его как строковую переменную, вы вводите необходимость проверять длину перед фиксацией в БД, где, как будто вы оставляете его как есть, вы можете просто вызвать ToString () для символ, чтобы получить строку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...