我对Entity Framework还是比较陌生的,并且在大多数情况下它都进行得很好,但是现在我正试图确定是否必须在这里使用继承,如果可以,使用哪种策略。经过几个小时的研究,我觉得继承不是我所需要的,但是我真的不确定,因为我还在学习。对于每种类型,不同的数据库结构可能会让我感到困惑。我希望你们能帮助我。
这是我的例子:
我有一个叫BasePokemon的类。它基本上是每个口袋妖怪物种的表格(假设原始物种有150个),并包含所有常见信息。这是下面的简化版本:
public int BasePokemonId { get; set; }
public string Name { get; set; }
public int PokedexNumber { get; set; }
public int BaseHP { get; set; }
public int BaseATK{ get; set; }
public int BaseDEF{ get; set; }
public int BaseSPD{ get; set; }
public int BaseSPD{ get; set; }
public string MainImageURL { get; set; }
...etc...
接下来,我有一个称为GamePokemon的类,它们是BasePokemon的实际实例。创建后,它们的许多数据将来自BasePokemon表,但是还有很多其他字段是特定于此神奇宝贝实例的。示例:
public int GamePokemonId {get; set; }
public int SpeciesId {get; set}
public BasePokemon Species {get; set}
public int Level {get; set; }
public string Gender { get; set; } //M or F
public int MaxHP { get; set; }
public int CurrHP { get; set; }
public int ExperiencePts { get; set; }
public int StatHP { get; set; }
public int StatATK { get; set; }
public int StatSATK { get; set; }
public int StatDEF { get; set; }
public int StatSDEF { get; set; }
public int StatSPD { get; set; }
...etc...
因此,尽管它可以从BasePokemon中获取其名称,基本统计信息,图像和其他常规字段,但它还有大量与该特定神奇宝贝相关的其他字段,例如其当前的HP,其等级,统计信息等。
所以这是我的问题:我应该在这里使用继承吗?因为我做的研究越多,我越意识到我认为自己做不到?
我目前正在考虑在GamePokemon表中创建BasePokemon字段,当创建GamePokemon时,它将从BasePokemon表中获取所有基本信息(使用所选的Pokemon种类)。我犹豫的原因是因为我要在BasePokemon和GamePokemon表中都创建大量字段。那是个问题吗?
谢谢。