У меня есть некоторые проблемы с использованием метода Query dbContext в базовом классе, который обеспечивает некоторое наследование одного другого класса (только для свойств наследования, а не для построения модели / базы данных)
В моих службах репо я называю что-то вроде:
IEnumerable<CoasterExtended> coasters = await _db.Query<CoasterExtended>()
.FromSql(GetCoastersProcedure, pageNumberParam, pageSizeParam, orderByParam, sortParam, breweryIdParam, searchParam, coasterTypeParam)
.ToListAsync();
GetCoastersProcedure - это процедура sql, которая возвращает все свойства класса CoasterExtended.Этот класс не используется для моделирования / построения базы данных.Это просто зеркало результата процедуры sql.
В моем методе OnModelCreating у меня просто есть:
builder.Query<CoasterExtended>();
Запрос результата процедуры sql работал нормально, пока я не решил использовать этот класс для наследования:
public class CollectionItemExtended : CoasterExtended {
// some additional properties
}
И метод OnModelCreating:
builder.Query<CollectionItemExtended>();
Запрос (типа CoasterExtended) теперь возвращает ошибку «Обязательный столбец« Дискриминатор »не присутствовал в результатах операции« FromSql »».Я знаю, что дискриминатор используется для унаследованных типов, но я использую оба класса для отражения результатов отдельных процедур SQL (эти результаты я просто сопоставляю с желаемыми классами модели приложения)
Поэтому я не хочу выбирать (и подделывать) дискриминатор ... Я просто хочу отобразить результаты процедур SQL для независимых классов (которые я унаследовал только потому, что я не хочу дублировать свойства и средства отображения, которые следуют).Как я могу добиться, чтобы результат запроса игнорировал наследование и просто возвращал описанные типы?