带有继承但没有摘要的EF表?

时间:2019-04-22 07:08:20

标签: c# entity-framework entity-framework-core

我想制作三个桌子:

  1. Tasks-该表将信息存储为ID,名称,任务优先级
  2. TakenTasks-在此表中,我们存储使用IDTime执行任务的用户的ID
  3. EndedTasks-以DateTime结束的任务

我的问题是,如何在EntityFramework CoreTakenTasksEndedTasks中将相同的属性映射到Tasks表,而无需重写任务ID的代码,名称任务等等?

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; }
}

如何在TaskTakenTask中将EndedTask中的Task中的信息存储到<select class="width100" id="dialog_settings_event_selected_recipient" style="height:80px;" multiple="multiple"> <option value="120">Aaban bilal</option> <option value="197">Aabid iqbal</option> <option value="196">Aadan parvaiz shah</option> <option value="262">Aadil bashir</option> <option value="195">Aaksa iqbol</option> <option value="233">Aamir shabir</option> <option value="231">Aasma zahoor</option> <option value="198">Aathir shah bhat</option> <option value="208">Aatif dar</option> <option value="244">Aatif manzoor</option> <option value="77">Abrar Mushtaq</option> <option value="68">Adnan Javid</option> <option value="236">Adnan amin</option> <option value="132">Adnan iqbal</option> <option value="112">Adnan mushtaq pir</option> <option value="252">Adnan nazir-107</option> <option value="157">Afhan Mudasir</option> <option value="154">Ahsan Yousuf</option> <option value="87">Aijaz Ah Malik</option> </select> 中并具有3个表的重写属性?

2 个答案:

答案 0 :(得分:0)

您无需在三个表中重复这些列,而使用从TakenTasksEndedTasksTask的外键,您可以在两个表中都创建一个public virtual Task ParentTask{ get; set; } TakenTasksEndedTasks,以便您可以访问任务属性

答案 1 :(得分:0)

我认为您需要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; }`

希望获得帮助