string sql = string.Format(
@"SELECT M.ManufacturerID
,M.DeviceCode
,M.DeviceName
,M.Repertoire,
(SELECT COUNT(*) FROM Catalogue AS [C] WHERE(([C].ManufacturerID = [M].ManufacturerID) AND ([C].DeviceCode = [M].DeviceCode) AND ([C].VendorID = [V].VendorID))) [LotsCount]
FROM Manufacturers AS [M]
LEFT JOIN Vendors AS [V] ON [V].ManufacturerID = M.ManufacturerID
WHERE (([V].VendorID LIKE ‘%V0%’) AND ([M].Enabled = 1))
ORDER BY [M].DeviceCode")
return ctx.Manufacturers.SqlQuery(sql).ToList();
Возвращаемые значения идут на привязку управления ретранслятором, но здесь [LotsCount]
не привязан к моему ретранслятору
<itemtemplate>
в
<asp:HyperLink ID = "LST_LotsCount" Text='<%# Eval("LotsCount") %>' runat = "server"></asp:HyperLink>
Вы создаете объекты Manufacturer
, и я не думаю, что LotsCount
является свойством Manufacturer
. Или, если это так, он не заполняется запросом. Первым шагом в анализе этого является сохранение ctx.Manufacturers.SqlQuery(sql).ToList();
в переменной и возврат переменной, чтобы вы могли поставить точку останова на оператор возврата и проверить, что возвращается.
Он возвращает список значений, но LotsCount — это имя столбца Extra Alias, а не столбец таблицы производителя. Здесь имя дополнительного столбца не привязано к моему управлению повторителем. Почему?
Действительно ли возвращенные Manufacturer
имеют ожидаемые значения LotsCount
? Если свойство LotsCount
не отображается в Manufacturer
, оно не будет заполнено вашим запросом.
Кажется, вы ничего не делаете с возвращаемым значением запроса..?