#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)
Нужно ли мне что-то искать здесь, в отношении иерархии таблиц для каждого типа?