Linq to sql 此查询使用Linq to Sql
我的DB表中有一些TBus字段,如s1、s2、s3、s4、…sn 我获取seatNumber作为参数,并希望获取该字段,就像代码中的字段一样。 有什么想法吗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 " +
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
。有关详细信息,请参见我的编辑。