Для части проекта, над которой я сейчас работаю, у меня есть набор из четырех таблиц для синдицируемых действий. Одна таблица является абстрактной базой для остальных трех, и каждая таблица представлена в моей модели EF следующим образом:
EF Model - Действия http://chris.charabaruk.com/system/files/images/EF+Model+Actions.png
Однако есть две проблемы, с которыми я сейчас сталкиваюсь. Первая проблема состоит в том, что Actor
(ссылка на User
) и Subject
(ссылка на сущность класса, связанного с каждым типом действия) имеют null
в моих подклассах, несмотря на связанные столбцы базы данных удерживая действительные ключи к строкам в связанных с ними таблицах. Хотя я могу получить ключи через ActorReference
и SubjectReference
, это, конечно, требует настройки нового контекста EF и запроса его для объектов, на которые имеются ссылки (поскольку Foo
Reference.Value
также является нулевым).
Вторая проблема заключается в том, что взаимное завершение отношений между конкретными классами действий и связанными с ними классами сущностей всегда ничего не приводит. Например, Task.RelatedActions
, который должен дать мне все TaskAction
объекты, где Subject
относится к конкретному объекту задачи, для которого вызывается RelatedActions
, полностью лишен объектов. Опять же, в базе данных есть действительные строки, Entity Framework просто не помещает их в объекты и не передает их мне.
Кто-нибудь знает, что я делаю неправильно, и что я должен сделать, чтобы это работало?
Обновление: Похоже, что ни одно из свойств отношений больше не работает в моей модели сущностей. WTF ...