Проблема в том, что вы запрашиваете у базы данных AdSolts и утилизируете ее сразу после этого. Затем, по вашему мнению, ваш код пытается получить доступ к AdSize , который снова пытается получить доступ к базе данных, но благодаря ленивой загрузке Linq-to-SQL AdSize не был загружен в первый раз, и поскольку контекст данных выбрасывает это исключение.
Вы можете решить свою проблему, используя DataLoadOptions .
List<AdSlot> list;
using(var dbc = new DbDataContext())
{
var loadOptions = new DataLoadOptions();
loadOptions.LoadWith<AdSlot>(n => n.AdSize);
dbc.LoadOptions = loadOptions;
list = dbc.AdSlots.Where(a => a.PublisherId == publisherId).ToList();
}
ViewData["AdSlots"] = list;