1

Linq to SQL およびストアド プロシージャを使用する場合、proc の結果セットを記述するために生成されるクラスは、char プロパティを使用して SQL proc の char(1) 列を表します。これらを文字列にしたいのですが、これを実現する簡単な方法はありますか?

4

4 に答える 4

3

{database}.designer.cs ファイルを変更できます。確認するのに便利なものはありませんが、かなり簡単だと思います---多くのコードを掘り下げて、変更を再生成する場合は変更を再適用することを忘れないでください。

または、独自のクラスを作成して選択で処理することもできます。たとえば、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);
于 2008-09-16T16:04:22.043 に答える
0

デザイナー ウィンドウに移動して、型を文字列に変更するだけです。私のコードでは Char よりも String の方が使いやすいので、私はいつもそうしています。

于 2008-10-06T05:58:07.060 に答える
0
var whatever =
    from x in something
    select new { yourString = Char.ToString(x.theChar); }
于 2008-09-16T15:49:27.367 に答える
-1

なぜそれをしたいのかわからない。基になるデータ型は複数の文字を格納できません。文字列変数として表すことで、db にコミットする前に長さをチェックする必要が生じます。そのままにしておくかのように、ToString() を呼び出すことができます文字列を取得する char

于 2008-09-16T14:55:42.067 に答える