首页 > 解决方案 > 对 EntityFrameworkCore 中的关系感到困惑

问题描述

目前我正在创建一个基于网络的游戏,我需要 EF 中的关系方面的帮助。我首先使用代码来制作表格,但我很困惑。问题来了:如何使 aPlayer具有不同类型的Weapons? 它们之间的关系类型是什么?在 Player 模型中我有ICollection<Weapon>,但是在 Weapons 模型中我该怎么办?如何建立关系,因为同一个武器可以被多个用户使用,每个用户可以拥有多个武器?

标签: c#asp.netasp.net-coreentity-framework-core

解决方案


使用 intermadia 表。

public class Weapon
{
  public int Id { get; set; }
  public ICollection<PlayerWeapon> PlayerWeapons{ get; set; }
}
public class Player
{
  public int Id { get; set; }
  public ICollection<PlayerWeapon> PlayerWeapons{ get; set; }
}
public class PlayerWeapon
{
 public int Id { get; set; }
 public int PlayerId { get; set; }
 public int WeaponId{ get; set; }

 [ForeignKey("PlayerId")]
 public Player Player{ get; set; }

[ForeignKey("WeaponId")]
public Weapon Weapon { get; set; }
}

推荐阅读