1

テーブルから複数の列を選択しましたが、それをビューに渡す方法がわかりません。

 var result = (from f in db.firmware
               where f.firmware_release_type_text != "" 
                     || f.firmware_release_type_text != null 
                     || f.firmware_release_number_int != 0
               select new{
                    f.firmware_release_type_text, 
                    f.firmware_release_number_int
               }).Distinct();

結果は f__anonymous2 です。私は自分の見解でそれをどのように使用するかを知りたいです。すべてのフォーラムが複数の列を選択する方法に答えただけですが、それらを渡す方法については誰も言及していません。明らかな何かが欠けていると思います。

このフィールドを使用したり、1 つの文字列としてマージしたりしたいと考えています。

私はキャストや他の多くのオプションを試しましたが、うまくいきませんでした。

スティングを強制的にキャストしようとすると、次のようになります。

Unable to cast the type 'Anonymous type' to type 'System.String'

ありがとう

アップデート:

最後に私は行きました:

var result = (from f in db.firmware
              where (f.firmware_release_type_text != "") 
                    && (f.firmware_release_type_text != null) 
                    && (f.firmware_release_number_int != 0)
              select  new{
                          f.firmware_release_type_text, 
                          f.firmware_release_number_int
                      }
              ).Distinct();

        List<string> result2 = new List<string>();
        foreach (var item in result)
        {
            result2.Add(item.firmware_release_type_text 
                        + "-" + item.firmware_release_number_int);
        }
4

2 に答える 2

0

最初にモデルを作成するための2つのオプションがあり、2番目にサーバー側でデータをフォーマットします。

于 2012-08-23T20:19:17.420 に答える
0

データを文字列として返したい場合は、どのようにフォーマットするかを指定する必要があります。たとえば、これを変更できます。

select new
{
    f.firmware_release_type_text , f.firmware_release_number_int
}

これに:

select f.firmware_release_type_text + " v" + (int)f.firmware_release_number_int
于 2012-08-23T00:40:08.317 に答える