Господа, дамы, всем привет! Туплю уже пару дней над проблемой: У меня

UnitOfWork repository pattern, есть 2 сущности, которые наследуются от abstract class (Base) в таком виде:
abstract class BaseEntity
public class NewUser : BaseEntity
public class User : NewUser

NewUser и User мапятся в одну таблицу Users с дискриминатором (11 для NewUser и 12 для User).
Однако, когда беру NewUsers через _unitOfWork.RepoNewUsers.GetAll() - в DBContext получаю записи с User.

SQL - query при этом содержит WHERE с указанием обоих дискриминаторов, хотя в Репозитории тип указан NewUser. (_entitySet = _dbContext.Set(<TEntity>), где TEntity и есть NewUser

Ну и второй симптом (следствие): когда создаю запись NewUser, в контексте есть, допустим, 4 записи User (контекст неправильно вытащил данные), на этапе сохранения пытается присвоить NewUser id = 5, и в контекст добавляется уже существующий NewUser с ID=5 из таблицы, State меняется с Added на Unchanged и как бы добавления не происходит.

Кажется, тема должна быть известна, но не могу найти подобного, подскажете советом, что делаю не так? Если данных мало - скажите, пож-та, какие ещё требуются

5 ответов

45 просмотров

Подскажите, пожалуйста, а какая ещё есть разница между классами User и NewUser?

Dad-Edd Автор вопроса
Dad-Edd Автор вопроса
Dad-Edd Автор вопроса
Dmitriy Yevchenko
Подскажите, пожалуйста, а какая ещё есть разница м...

Пока моя гипотеза заключается в том, что нужно base class описать в конфиге EF, в виде: modelBuilder.Entity<SiYatsEntityBase>().UseTphMappingStrategy(); Как будто EF не понял иерархию

Dad Edd
Пока моя гипотеза заключается в том, что нужно bas...

Для EF не надо реализовывать паттерн Unit of work, он уже под капотом сидит.

Похожие вопросы

Обсуждают сегодня

Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Ребят, а больше никто поработать не хочет? Кто свободен?
AIZ
4
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Карта сайта