1

我对 LINQ 查询有疑问...

我正在检索列表中的数据

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

    }

但在这里我的表 Station_Masters 包含一个状态字段作为数据类型 int..

列表将为我提供表格中的所有记录,包括状态...

但我需要将 Status 显示为 String ...

我的意思是如果状态为 0,那么它将返回“活动”,或者如果它是 1,那么它将返回“非活动”

我该怎么做呢?

4

3 回答 3

7

有很多方法可以做到这一点,一个例子可能是扩展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

You need to create a DTO where the Status is a string and not an integer, and leave all other properties as the original object.

Then your method can simply:

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

This is however inefficient as if would extract all the rows from the table in order to remap them. You'd better apply the Select transformation only after filtering them.

于 2012-08-08T10:22:14.027 回答
0

我认为最好将“活动/非活动”描述远离数据检索逻辑。正如@James 建议的那样 - 只需扩展您的类并显式编译描述属性。

于 2012-08-08T10:25:58.993 回答