Поскольку Menu
связан с Ingredients
, он будет содержать связанные ингредиенты. Вам не нужно извлекать Ingredients
отдельно.
<tr th:each="menu : ${menuList}">
<td th:text="${menu.name}"></td>
<td><a th:href="@{/foodDescription}" th:text="Description">Description</a></td>
<td th:each="ing : ${menu.ingredient}"> <!-- I have only modified here -->
<ul>
<li th:text = ${ing.ingredientName}></li>
</ul>
</td>
Вы выполняете x64 ОС на своем поле? Кажется, существуют проблемы с BatchParser.dll в 64-разрядных средах - обычно рекомендуется загрузить пакет SMO x64 (SQLServer2005_XMO_x64.msi) с Microsoft.
Посмотрите информацию об этом здесь.
Я смог успешно выполнить Ваш код с помощью 10.* версии блоков "Microsoft. SqlServer. ConnectionInfo", "Microsoft. SqlServer. Управление. Sdk. Sfc" и "Microsoft. SqlServer. Smo". Попытайтесь загрузить версию 2008 года компонентов SMO, возможно, это была ошибка, которую они теперь исправили.
Именно так мы понимаем проблему правильно, Microsoft.SqlServer.BatchParser.dll не установлен в Глобальном кэше сборок на Вашей машине разработки? Если так, Вы могли бы хотеть запуститься с переустановки Платформы.NET (версия Платформы, для которой Вы нацелены) видеть, решает ли это вопрос.
Можно также попытаться использовать Инструмент конфигурирования Платформы.NET, чтобы видеть, присутствует ли блок действительно в Глобальном кэше сборок (GAC). Эта Статья MSDN описывает, как использовать этот инструмент.
(Поиск моего жесткого диска не возвратил блок Microsoft.SqlServer.BatchParser.dll даже при том, что я вижу, что он использует Инструмент конфигурирования Платформы.NET).
он поставляется как часть советника по обновлению 2005 или 2008.