EF Таблица с наследованием, но не Аннотация? - PullRequest
0 голосов
/ 22 апреля 2019

Я хочу сделать три таблицы:

  1. Tasks - эта таблица хранит информацию в виде идентификаторов, имен, приоритетов задач
  2. TakenTasks - в этой таблице мы храним идентификатор пользователя, который выполняет задачи с DateTime
  3. EndedTasks - Задача, заканчивающаяся DateTime of end

У меня вопрос: как сделать, чтобы в EntityFramework Core таблице TakenTasks и EndedTasks были одинаковые свойства, сопоставленные с таблицей Tasks без переписывания кода для идентификаторов задач, имен задач и т. Д.?

Tasks таблица может быть построена на основе класса abstract Task, потому что я хочу, чтобы в списке был объект Task. Какое лучшее решение для scenerio, как я уже упоминал выше?

public class Task 
{
    int Id { get; set; }
    string Name { get; set; }
    Priority Priority { get; set; }
}

public class TakenTask 
{
    string UserId { get; set; }
    DateTime DateOfTaken { get; set; }
}

public class EndedTask 
{
    DateTime DateOfEnd { get; set; }
}

Как хранить информацию из Task в TakenTask и EndedTask с перезаписью свойств из Task и иметь 3 таблицы?

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Я думаю, вам нужно 2 таблицы:

  1. Task
  2. Assign

В Task должно быть

int Id { get; set; }
string Name { get; set; }
Priority Priority { get; set; }
Status Status { get; set; }

В Assign должно быть

int TaskId { get; set; }
int UserNameId { get; set; }
DateTime StartDate { get; set; }
DateTime EndDate { get; set; }`

Надеюсь, эта помощь

0 голосов
/ 22 апреля 2019

Вам не нужно дублировать столбцы в трех таблицах, используйте внешний ключ от TakenTasks и EndedTasks до Task, и вы можете создать public virtual Task ParentTask{ get; set; } в TakenTasks и EndedTasks, поэтому Вы можете получить доступ к свойствам задачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...