У меня есть первая реализация EF кода, и у меня есть функция уровня сервиса GetNavigations()
, которая создает IEnumerable<Navigation>
.EF странное поведение при отладке
Когда я запускаю свой код и ударяю точку останова в моем представлении MVC, я заметил, что мой указатель отладки возвращается обратно в GetNavigations()
, когда я пытаюсь получить доступ к свойству объекта. Почему это так? Действительно ли она запускает мою функцию снова и снова?
Мне также интересно, почему мой тест не входит в мой вызов функции, если я не делаю result.Count()
.
Посмотреть
<ul>
@foreach (var menu1 in Model)
{
<li><a href="@menu1.Url" >@menu1.Text</a>
@if (menu1.SubNavigations.Count > 0)
{
<div>
<ul>
@foreach (var menu2 in menu1.SubNavigations)
{
<li>
<a href="@menu2.Url" >@menu2.Text</a>
</li>
}
</ul>
</div>
}
</li>
}
</ul>
Метод испытания
INavigationManager oNavMgr = CreateTarget();
// does not step into
var result = oNavMgr.GetNavigations(NavigationType.Main, false);
// but it steps into when i do this.
Assert.IsTrue(result.Count() > 0);
Контроллер
public class NavigationController : Controller
{
IUnitOfWork m_oUnitOfWork = null;
public NavigationController(IUnitOfWork oUoW)
{
m_oUnitOfWork = oUoW;
}
//
// GET: /Navigation/
public PartialViewResult List(NavigationType iId)
{
var topNavs = m_oUnitOfWork.NavigationManager.GetNavigations(iId);
return PartialView(topNavs);
}
}
Как вы передаете «результат» на представление? –
Добавлен код моего контроллера –
Все кажется правильным из того, что вы дали до сих пор ... –