我正在构建一个数据库来存储双重淘汰赛锦标赛。锦标赛中的每场比赛都有两队相互比赛。在第一轮比赛中,球队根据种子进行固定。在随后的几轮比赛中,球队是之前比赛的赢家和输家。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="nav-side-menu">
<div class="brand">Brand Logo</div>
<i class="fa fa-bars fa-2x toggle-btn" data-toggle="collapse" data-target="#menu-content"></i>
<div class="menu-list">
<ul id="menu-content" class="menu-content collapse out">
<li>
<a href="new-patient.php">
<i class="fa fa-plus-square"></i>New Patient
</a>
</li>
<li>
<a href="returning-patient.php">
<i class="fa fa-plus-square"></i>Returning Patient
</a>
</li>
</ul>
</div>
</div>
对于两个团队中的每个团队,都有一个TeamSourceType,用于指示团队的确定方式。如果TeamSourceType1 / 2指定前一场比赛的赢家或输家,我需要SourceMatch1 / 2来引用获胜者/输家的比赛。我正在使用Entity Framework 6 Code First。我已经尝试了几种注释和流畅映射的组合,但没有任何效果。 我得到“Multiplicity无效......”和“违反多重性约束......”。
我需要使用哪些注释和/或流畅的映射才能使其工作?
答案 0 :(得分:1)
我必须在我的一个项目中使用自引用表,下面的方法对我有效。
在我的实体类中,我像这样定义了FK
。
public int? RelatedMatchId{ get; set; }
public virtual Match SourceMatch1 { get; set; }
然后,我将此规范添加到modelbuilder
OnModelCreating
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Match>()
.HasOptional(c => c.SourceMatch1 )
.WithMany()
.HasForeignKey(c => c.RelatedMatchId);
}