У меня возникли проблемы с запросом Linq-to-SQL
Теперь, если я выполню этот запрос, все будет работать нормально, и я получу правильные результаты (2 строки).
return _repository.GetMenus()
.Where(x => x.ParentId == null && x.WikiId == 1)
.ToList();
Но если я сделаю следующее, я просто получу пустой список.
var menu = new WikiMenu();
menu.ParentId = null;
return _repository.GetMenus()
.Where(x => x.ParentId == menu.ParentId && x.WikiId == 1)
.ToList();
Но если menu.ParentId
- это что-то еще, то null работает просто отлично.
Это модель WikiMenu
public class WikiMenu
{
public int? Id { get; set; }
public int WikiId { get; set; }
public int PageId { get; set; }
public string Title { get; set; }
public int Order { get; set; }
public int? ParentId { get; set; }
public List<WikiMenu> SubMenu { get; set; }
}
Как я могу это исправить?
До сих пор я занимался этим маленьким взломом
if(menu.ParentId == null)
return _repository.GetMenus()
.Where(x => x.ParentId == null && x.WikiId == site.Id)
.ToList();
else
return _repository.GetMenus()
.Where(x => x.ParentId == menu.ParentId && x.WikiId == site.Id)
.ToList();