C# 如何在实体框架通用代码中查看参数
我想如何知道实体框架生成的所有参数 我的代码:C# 如何在实体框架通用代码中查看参数,c#,entity-framework,linq,C#,Entity Framework,Linq,我想如何知道实体框架生成的所有参数 我的代码: var t1 = db.OrdersFoods.Include(x => x.L_Food).Where(x => x.OrderID == order.ID) .Select(x => new OrderDetail {
var t1 = db.OrdersFoods.Include(x => x.L_Food).Where(x => x.OrderID == order.ID)
.Select(x => new OrderDetail
{
cTopping = (from topping in db.L_Topping
where x.Topping.Contains(topping.ID.ToString() + ",")
select new ToppingDTO
{
ToppingID = topping.ID,
Name = topping.ToppingName,
Price = topping.Price
}),
cFood = x.L_Food.FoodName,
cPrice = x.L_Food.Price,
cImage = x.L_Food.Image,
cSaleOff = x.L_Food.SaleOff,
cPriceTopping = 0,
cQuantity = x.Quantity,
cOrderID = x.OrderID,
cFoodID = x.FoodID,
cToppingID = x.Topping,
cUnit = x.L_Food.Unit,
cTotal = 0,
FacID = x.FacID,
Note = order.Note
}).Where(x => x.FacID.Equals(FacID));
var orderfoods = t1.ToList();
此SQL代码由实体框架生成:
SELECT
[Project1].[ID] AS [ID],
[Project1].[ID1] AS [ID1],
[Project1].[FoodName] AS [FoodName],
[Project1].[Price] AS [Price],
[Project1].[Image] AS [Image],
[Project1].[SaleOff] AS [SaleOff],
[Project1].[C1] AS [C1],
[Project1].[Quantity] AS [Quantity],
[Project1].[OrderID] AS [OrderID],
[Project1].[FoodID] AS [FoodID],
[Project1].[Topping] AS [Topping],
[Project1].[Unit] AS [Unit],
[Project1].[C2] AS [C2],
[Project1].[FacID] AS [FacID],
[Project1].[C3] AS [C3],
[Project1].[C4] AS [C4],
[Project1].[ID2] AS [ID2],
[Project1].[ToppingName] AS [ToppingName],
[Project1].[Price1] AS [Price1]
FROM ( SELECT
[Extent1].[ID] AS [ID],
[Extent1].[OrderID] AS [OrderID],
[Extent1].[FoodID] AS [FoodID],
[Extent1].[Quantity] AS [Quantity],
[Extent1].[Topping] AS [Topping],
[Extent1].[FacID] AS [FacID],
[Extent2].[ID] AS [ID1],
[Extent2].[FoodName] AS [FoodName],
[Extent2].[Unit] AS [Unit],
[Extent2].[Price] AS [Price],
[Extent2].[Image] AS [Image],
[Extent2].[SaleOff] AS [SaleOff],
[Extent3].[ID] AS [ID2],
[Extent3].[ToppingName] AS [ToppingName],
[Extent3].[Price] AS [Price1],
0 AS [C1],
0 AS [C2],
@p__linq__1 AS [C3],
CASE WHEN ([Extent3].[ID] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C4]
FROM [dbo].[OrdersFood] AS [Extent1]
INNER JOIN [dbo].[L_Food] AS [Extent2] ON [Extent1].[FoodID] = [Extent2].[ID]
LEFT OUTER JOIN [dbo].[L_Topping] AS [Extent3] ON ( CAST(CHARINDEX( CAST( [Extent3].[ID] AS nvarchar(max)) + N',', [Extent1].[Topping]) AS int)) > 0
WHERE ([Extent1].[OrderID] = @p__linq__0) AND (([Extent1].[FacID] = @p__linq__2) OR (([Extent1].[FacID] IS NULL) AND (@p__linq__2 IS NULL)))
) AS [Project1]
ORDER BY [Project1].[ID] ASC, [Project1].[ID1] ASC, [Project1].[C4] ASC
-- p__linq__0: '23853' (Type = Int32, IsNullable = false)
-- p__linq__2: '3' (Type = AnsiString, Size = 8000)
-- p__linq__1: 'null' (Type = String, Size = 4000)
我知道p\u linq\u 2
的FacID
,p\u linq\u 0
的OrderID
但未知p\u linq\u 1
最后:我曾经使用LinQ调试可视化工具,但它不工作!感谢你为帮助我所做的一切努力!谢谢大家。不要浪费时间。看起来它是内部生成的参数,用于执行此查询。EF6有一个糟糕的SQL生成器。