Entity Framework MySQL включает результаты в InvalidCastException

#c# #mysql #entity-framework #table-per-type

#c# #mysql #entity-framework #таблица для каждого типа

Вопрос:

У меня есть иерархия таблиц для каждого типа, подобная этой:

Есть датчики, которые содержат обновления (в виде списка), которые содержат точки данных (в виде списка). Точки данных состоят из разных производных класса «Datapoint», например, есть Int_Datapoints и Float_Datapoints. В базе данных каждый из них находится в своей собственной таблице (таблица для каждого типа), связанной с «Обновлением» с их идентификатором.

Мой контекст содержит dbset датчиков.

Если я хочу иметь все точки данных всех обновлений с использованием MySQL EF, я предполагаю, что мне нужно создать что-то вроде этого:

 List<Sensor> result = _seonsorContext.Sensors.Include("Updates.Datapoints").Where(x => x.Guid == Sensor.Guid).ToList();
  

Когда я делаю это, просто включая обновления (с отсутствующими фактическими точками данных), это работает. Но когда мне нужны точки данных, включая и их, я получаю указанное исключение:

 InvalidCastException

StackTrace:

   at MySql.Data.MySqlClient.MySqlDataReader.GetByte(Int32 i)
   at MySql.Data.Entity.EFMySqlDataReader.GetByte(Int32 ordinal)
  

Нужно ли мне что-то искать здесь, в отношении иерархии таблиц для каждого типа?