C# 实体框架生成不同的sql查询
下面是从表中获取一个字段的代码C# 实体框架生成不同的sql查询,c#,asp.net,sql,.net,entity-framework,C#,Asp.net,Sql,.net,Entity Framework,下面是从表中获取一个字段的代码 var a = db.Customs .Where(x => x.Cust_ID == tid) .Select(x => x.TransferCommission.Value) .FirstOrDefault().ToString(); 这段代码生成下面的SQL查询 SELECT TOP (1) [Extent1].[TransferCommission] AS [TransferCom
var a = db.Customs
.Where(x => x.Cust_ID == tid)
.Select(x => x.TransferCommission.Value)
.FirstOrDefault().ToString();
这段代码生成下面的SQL查询
SELECT TOP (1)
[Extent1].[TransferCommission] AS [TransferCommission]
FROM [dbo].[Custom] AS [Extent1]
WHERE 54612 = [Extent1].[Cust_ID]
exec sp_executesql N'SELECT
[Limit1].[Supl_ID] AS [Supl_ID]
FROM ( SELECT TOP (1)
[Extent1].[Supl_ID] AS [Supl_ID]
FROM (SELECT
[Toursn].[Airline_ID] AS [Airline_ID],
[Toursn].[Tour_Code] AS [Tour_Code],
[Toursn].[Supl_ID] AS [Supl_ID],
[Toursn].[Start_Destination_ID] AS [Start_Destination_ID],
[Toursn].[End_Destination_ID] AS [End_Destination_ID],
[Toursn].[Tour_Name] AS [Tour_Name],
[Toursn].[Service_Category_ID] AS [Service_Category_ID],
[Toursn].[Tour_Option_Name] AS [Tour_Option_Name],
[Toursn].[Run_MinPax] AS [Run_MinPax],
[Toursn].[Notes] AS [Notes],
[Toursn].[Advse_Book] AS [Advse_Book],
[Toursn].[Tour_Desc] AS [Tour_Desc],
[Toursn].[Tour_Duration] AS [Tour_Duration],
[Toursn].[Distance] AS [Distance],
[Toursn].[Tour_ID] AS [Tour_ID],
[Toursn].[Tour_Map1] AS [Tour_Map1],
[Toursn].[Tour_Num_Days_Cruise] AS [Tour_Num_Days_Cruise],
[Toursn].[Tour_Itinerary_File] AS [Tour_Itinerary_File],
[Toursn].[Cruise_Supl_ID] AS [Cruise_Supl_ID],
[Toursn].[Toursn_Deleted] AS [Toursn_Deleted],
[Toursn].[Tour_Picture] AS [Tour_Picture],
[Toursn].[motherTour_ID] AS [motherTour_ID],
[Toursn].[isMotherTour] AS [isMotherTour],
[Toursn].[Tour_cruise_before_day] AS [Tour_cruise_before_day],
[Toursn].[Tour_Thumbnail] AS [Tour_Thumbnail],
[Toursn].[MainNotification] AS [MainNotification],
[Toursn].[Operated_Supl_ID] AS [Operated_Supl_ID],
[Toursn].[TransferStatus] AS [TransferStatus],
[Toursn].[Escor] AS [Escor],
[Toursn].[OnList] AS [OnList],
[Toursn].[PicUploadDate] AS [PicUploadDate],
[Toursn].[TransCat] AS [TransCat],
[Toursn].[TransferNo] AS [TransferNo],
[Toursn].[TransferDuration] AS [TransferDuration],
[Toursn].[DeparTime] AS [DeparTime],
[Toursn].[ArrivTime] AS [ArrivTime],
[Toursn].[Educational] AS [Educational],
[Toursn].[Tour_Picture_AltTag] AS [Tour_Picture_AltTag],
[Toursn].[OnlyBookingAgent] AS [OnlyBookingAgent],
[Toursn].[DuplicateDate] AS [DuplicateDate],
[Toursn].[Duplicate] AS [Duplicate],
[Toursn].[DuplicateNo] AS [DuplicateNo],
[Toursn].[Toursn_CruiseCnt] AS [Toursn_CruiseCnt]
FROM [dbo].[Toursn] AS [Toursn]) AS [Extent1]
WHERE ([Extent1].[Tour_ID] = @p__linq__0) AND (@p__linq__0 IS NOT NULL)
) AS [Limit1]',N'@p__linq__0 int',@p__linq__0=25
但是这个代码
var b = db.Tours
.Where(x => x.Tour_ID == tid)
.Select(x => x.Supl_ID.Value)
.FirstOrDefault()
.ToString();
生成下面的SQL查询
SELECT TOP (1)
[Extent1].[TransferCommission] AS [TransferCommission]
FROM [dbo].[Custom] AS [Extent1]
WHERE 54612 = [Extent1].[Cust_ID]
exec sp_executesql N'SELECT
[Limit1].[Supl_ID] AS [Supl_ID]
FROM ( SELECT TOP (1)
[Extent1].[Supl_ID] AS [Supl_ID]
FROM (SELECT
[Toursn].[Airline_ID] AS [Airline_ID],
[Toursn].[Tour_Code] AS [Tour_Code],
[Toursn].[Supl_ID] AS [Supl_ID],
[Toursn].[Start_Destination_ID] AS [Start_Destination_ID],
[Toursn].[End_Destination_ID] AS [End_Destination_ID],
[Toursn].[Tour_Name] AS [Tour_Name],
[Toursn].[Service_Category_ID] AS [Service_Category_ID],
[Toursn].[Tour_Option_Name] AS [Tour_Option_Name],
[Toursn].[Run_MinPax] AS [Run_MinPax],
[Toursn].[Notes] AS [Notes],
[Toursn].[Advse_Book] AS [Advse_Book],
[Toursn].[Tour_Desc] AS [Tour_Desc],
[Toursn].[Tour_Duration] AS [Tour_Duration],
[Toursn].[Distance] AS [Distance],
[Toursn].[Tour_ID] AS [Tour_ID],
[Toursn].[Tour_Map1] AS [Tour_Map1],
[Toursn].[Tour_Num_Days_Cruise] AS [Tour_Num_Days_Cruise],
[Toursn].[Tour_Itinerary_File] AS [Tour_Itinerary_File],
[Toursn].[Cruise_Supl_ID] AS [Cruise_Supl_ID],
[Toursn].[Toursn_Deleted] AS [Toursn_Deleted],
[Toursn].[Tour_Picture] AS [Tour_Picture],
[Toursn].[motherTour_ID] AS [motherTour_ID],
[Toursn].[isMotherTour] AS [isMotherTour],
[Toursn].[Tour_cruise_before_day] AS [Tour_cruise_before_day],
[Toursn].[Tour_Thumbnail] AS [Tour_Thumbnail],
[Toursn].[MainNotification] AS [MainNotification],
[Toursn].[Operated_Supl_ID] AS [Operated_Supl_ID],
[Toursn].[TransferStatus] AS [TransferStatus],
[Toursn].[Escor] AS [Escor],
[Toursn].[OnList] AS [OnList],
[Toursn].[PicUploadDate] AS [PicUploadDate],
[Toursn].[TransCat] AS [TransCat],
[Toursn].[TransferNo] AS [TransferNo],
[Toursn].[TransferDuration] AS [TransferDuration],
[Toursn].[DeparTime] AS [DeparTime],
[Toursn].[ArrivTime] AS [ArrivTime],
[Toursn].[Educational] AS [Educational],
[Toursn].[Tour_Picture_AltTag] AS [Tour_Picture_AltTag],
[Toursn].[OnlyBookingAgent] AS [OnlyBookingAgent],
[Toursn].[DuplicateDate] AS [DuplicateDate],
[Toursn].[Duplicate] AS [Duplicate],
[Toursn].[DuplicateNo] AS [DuplicateNo],
[Toursn].[Toursn_CruiseCnt] AS [Toursn_CruiseCnt]
FROM [dbo].[Toursn] AS [Toursn]) AS [Extent1]
WHERE ([Extent1].[Tour_ID] = @p__linq__0) AND (@p__linq__0 IS NOT NULL)
) AS [Limit1]',N'@p__linq__0 int',@p__linq__0=25
我不明白为什么会这样?有谁能帮我解决这个问题吗?谢谢大家。我发现了问题。可能是我的错误,但我并没有创建数据库,所以我错过了tours表并没有主键
我将Tour_ID字段指定为主键,它工作得很好。正是
Toursn
表中的字段数量使它看起来很引人注目。但如果你把这些去掉,剩下的问题几乎是一样的。只是一个简单的子选择的顶部1,而不是表的顶部1。Cust\u ID
和Tour\u ID
列的数据库和EF类型是什么?