Linq to sql 此查询使用Linq to Sql

Linq to sql 此查询使用Linq to Sql,linq-to-sql,Linq To Sql,我的DB表中有一些TBus字段,如s1、s2、s3、s4、…sn 我获取seatNumber作为参数,并希望获取该字段,就像代码中的字段一样。 有什么想法吗 private string checkSeatValue(int busTripId, int seatNumber) { string sNumber = "s" + seatNumber.ToString(); // Some code here string sqlCommand = "SELECT " +

我的DB表中有一些TBus字段,如s1、s2、s3、s4、…sn 我获取seatNumber作为参数,并希望获取该字段,就像代码中的字段一样。 有什么想法吗

private string checkSeatValue(int busTripId, int seatNumber)
{
    string sNumber = "s" + seatNumber.ToString();
    // Some code here

    string sqlCommand = "SELECT " + sNumber + " FROM TBus WHERE Id=" + busTripId + "";
    // More code here
}

如果您想要纯Linq2SQL代码,您应该获得TBus对象:

var bus = yourDataContext.GetTable<TBus>().Where(bus => bus.BusTripId == busTripId).SingleOrDefault();
但是,您也可以通过Linq编写纯SQL代码,也可以使用反射

--编辑

正如我在评论中所说,我相信您的数据库模型可以改进。我的建议是有两张桌子:

TBus表格

TBusId - int [PK]
...
TBusSeatId - int [PK]
TBusIs - int [FK referencing TBus.TBusId]
SeatNumber - int
...
TBusId
------
1
2
TBusSeatId | TBusId | SeatNumber | PassengerName
------------------------------------------------
1            1        1            Josh Doe
2            1        2            John Doe
3            1        3            Jane Doe
4            2        1            Jack Doe
t早餐桌

TBusId - int [PK]
...
TBusSeatId - int [PK]
TBusIs - int [FK referencing TBus.TBusId]
SeatNumber - int
...
TBusId
------
1
2
TBusSeatId | TBusId | SeatNumber | PassengerName
------------------------------------------------
1            1        1            Josh Doe
2            1        2            John Doe
3            1        3            Jane Doe
4            2        1            Jack Doe
这样,你就有了更自然的灵活性来处理这些情况。考虑下面的数据集:

TBus表格

TBusId - int [PK]
...
TBusSeatId - int [PK]
TBusIs - int [FK referencing TBus.TBusId]
SeatNumber - int
...
TBusId
------
1
2
TBusSeatId | TBusId | SeatNumber | PassengerName
------------------------------------------------
1            1        1            Josh Doe
2            1        2            John Doe
3            1        3            Jane Doe
4            2        1            Jack Doe
t早餐桌

TBusId - int [PK]
...
TBusSeatId - int [PK]
TBusIs - int [FK referencing TBus.TBusId]
SeatNumber - int
...
TBusId
------
1
2
TBusSeatId | TBusId | SeatNumber | PassengerName
------------------------------------------------
1            1        1            Josh Doe
2            1        2            John Doe
3            1        3            Jane Doe
4            2        1            Jack Doe
因此,要使用Linq2SQL处理所需的查询,可以简单如下:

var seat = yourDataContext.GetTable<TBusSeat>().Where(seat => seat.TBusId == 1 && seat.SeatNumber == 2).SingleOrDefault();
var seat=yourDataContext.GetTable()。其中(seat=>seat.TBusId==1&&seat.SeatNumber==2)。SingleOrDefault();

调用
seat.PassengerName
会导致
John Doe

和IMHO,您的数据库模型被弄乱了。如果您有一个
TBusSeat
表,它会更灵活。。你说的餐桌是什么意思。。?每辆公共汽车有54个座位,你怎么能做到。。?通过创建54个表。?我错过了。不,我的朋友。我的建议是有两个表:
TBus
TBusSeat
。有关详细信息,请参见我的编辑。