[英]How can I create a custom m2m table in Entity Framework Code-First
希望这是相对简单的,但是我似乎无法全神贯注于此。
我有一个这样的POCO:
public class TigerTrailRequiredBadge
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<TigerTrailRequiredBadgeSubRequirement> TigerTrailRequiredBadgeSubRequirements { get; set; }
}
和一个非常类似的这样:
public class TigerTrailElectiveBadge
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int Number { get; set; }
public string Name { get; set; }
public string Requirement { get; set; }
}
这两个poco是只有一堆查询数据的表。 它们是徽章要求的清单。 我现在需要一张桌子来跟踪人员完成徽章的进度。 因此,我有一个具有以下对象属性的root用户对象:
public class Youth
{
...
public virtual YouthCubRequirementsTracker YouthCubRequirementsTracker { get; set; }
...
}
那poco看起来像这样:
public class YouthCubRequirementsTracker
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public bool TigerTrailDone { get; set; }
public virtual TigerTrailChecklist TigerTrailChecklist { get; set; }
...more 'Trail' Checklists ...
}
这把我带到了我无法弄清楚的地方:TigerTrailChecklist:
public class TigerTrailChecklist
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public List<TigerTrailRequiredBadge> RequiredBadges { get; set; }
public List<TigerTrailElectiveBadge> ElectiveBadges { get; set; }
}
我希望Tiger Trail清单显示这种数据(伪sql结果)
Id FK_ReqBadgeId FK_ElectiveBadgeID Complete CompleteDate
1 42 null true 11-12-13
2 null 13 true 11-12-14
所以,有几个问题:
几个指针:
[Key]
和[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
属性中注释POCO Id属性。 按照惯例,实体框架会将Id列视为主键,并在运行时自动分配其值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.