我正在尝试为我的页面动态生成标题。我使用此查询选择项目类型:
ViewBag.itemType = From row In db.tblCategories
Where row.Item_Type_Identifier = itemType
Select CStr(row.Item_Type)
Distinct
在我看来,我试图像这样展示它:
<h2>Details for @ViewBag.itemType </h2>
我没有看到显示从查询中检索到的值的视图,而是看到LINQ查询实际显示如下:
SELECT [Distinct1].[Item_Type] AS [Item_Type]
FROM ( SELECT DISTINCT [Extent1].[Item_Type]
AS [Item_Type] FROM [dbo].[tblCategories] AS [Extent1]
WHERE [Extent1].[Item_Type_Identifier] = @p__linq__0 )
AS [Distinct1]
我尝试将查询中的值放在变量中,然后将该变量添加到ViewData
,然后在视图中检索该值。
我试图在我的LINQ上使用.ToString
而不是投射CStr
。
为什么我的查询被放在我的ViewBag
而不是我的LINQ返回的值?
答案 0 :(得分:3)
这是因为你传递了LINQ查询(在这种情况下是IQueriable)。
尝试这样的事情:
ViewBag.itemType = (From row In db.tblCategories
Where row.Item_Type_Identifier = itemType
Select CStr(row.Item_Type)
Distinct).Single()
(如果在VB.NET中允许此语法)