IOException: невозможно прочитать данные - Entity Framework Core - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть проект ASP.NET Core 2.0, использующий Entity Framework Core 2.0 с базой данных SQL Azure.Файлы EF были сгенерированы в режиме базы данных.Я могу успешно получить запись верхнего уровня с помощью:

VehicleList = Context.VehicleTable.Where(x => x.VehicleID == vehicleid)
    .ToList();

Существует связанная таблица VehicleAttributeTable, имеющая тот же первичный ключ, который также должен быть получен.Поэтому я добавляю предложение «Включить», как я видел в руководствах:

VehicleList = Context.VehicleTable.Where(x => x.VehicleID == vehicleid)
    .Include(x => x.VehicleAttributeTable)
    .ToList();

Этот поиск работает, как и ожидалось, возвращая пустой подсписок для связанной таблицы, если в связанной таблице нет записи для этого ключа.Но если в нем есть запись, весь поиск завершается неудачно с сообщением «IOException: невозможно прочитать данные из транспортного соединения: соединение было закрыто».Чего мне не хватает?

Редактировать, добавив сгенерированные классы сущностей:

public partial class VehicleTable
{
    public VehicleTable()
    {
        VehicleAttributeTable = new HashSet<VehicleAttributeTable>();
    }

    public int VehicleID { get; set; }

    public virtual ICollection<VehicleAttributeTable> VehicleAttributeTable { get; set; }
}

public partial class VehicleAttributeTable
{
    public int VehicleID { get; set; }
    public int Attribute { get; set; }

    public virtual AttributeEnum AttributeNavigation { get; set; }
    public virtual VehicleTable Vehicle { get; set; }
}

VehicleAttributeTable завершен.VehicleTable показывает только те части, которые имеют отношение к VehicleAttributeTable;Я не могу опубликовать весь VehicleTable, потому что это большой объем проприетарного (хотя и сгенерированного) кода.

...