1

LINQ クエリに問題があります...

リスト内のデータを取得しています

 public List<Station_Master> GetAllStations()
    {
        var stationlist = from s in dc.Station_Masters
                          select s;
        return stationlist.ToList();

    }

しかし、ここで私のテーブル Station_Masters には、Data Type int として 1 つの Status フィールドが含まれています。

リストには、ステータスを含むテーブルのすべてのレコードが表示されます...

しかし、ステータスを文字列として表示する必要があります...

Status が 0 の場合は「アクティブ」を返し、1 の場合は「非アクティブ」を返します。

どうすればこれを行うことができますか?

4

3 に答える 3

7

これを行う方法は多数あります。1 つの例として、Station_Masterクラスを拡張して、ステータスの文字列表現を返すプロパティを公開することができます。

public partial class Station_Master
{
    public string StatusText
    {
        get
        {
            switch (Status)
            {
                case 0:
                    return "Active";
                case 1:
                    return "Inactive";
                default:
                    return "Unknown";
            }
        }
    }
}
于 2012-08-08T10:19:46.057 に答える
0

「アクティブ/非アクティブ」の説明をデータ取得ロジックから遠ざける方がよいと思います。@Jamesが提案したように、クラスを拡張し、descriptionプロパティを明示的にコンパイルするだけです。

于 2012-08-08T10:25:58.993 に答える
0

Status が整数ではなく文字列である DTO を作成し、他のすべてのプロパティを元のオブジェクトのままにする必要があります。

次に、メソッドは次のように簡単に実行できます。

return dc.Station_Masters
.Select(c => new CustomObject
{
//Map all other fields and then remap the status
Status = c.Status == 0 ? "Active" : "Inactive"
});

ただし、これはテーブルからすべての行を抽出して再マップするため、非効率的です。Selectそれらをフィルタリングした後にのみ、変換を適用することをお勧めします。

于 2012-08-08T10:22:14.027 に答える