如何将对象列表添加到对象中并将其存储在数据库中?

How to add a list of objects into an object and store it in database?

我正在使用 MVC C# 我有一个模型:

    public class AccountModel
{
    [Key]
    public int Id { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public List<GameModel> Apps { get; set; }
    public bool IsUseless { get; set; }
}

和一个游戏模型:

    public class GameModel
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
    public bool VacBanned { get; set; }
}

我正在尝试使用实体将一个拥有 N 款游戏的帐户存储在帐户数据库中。但是 Entity Framework 甚至没有创建一个名为 Apps 的列,我不知道如何解决这个问题。

我会为这些模型添加一些导航属性。

public class AccountModel
{
    [Key]
    public int Id { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public ICollection<GameModel> Apps { get; set; }
    public bool IsUseless { get; set; }
}

public class GameModel
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
    public bool VacBanned { get; set; }
    [ForeignKey(nameof(Account))]
    public int AccountId { get; set; }
    public AccountModel Account { get; set; }
}

如果您的 DBContext 设置正确(您未在此处提供),以上内容应该会自动映射 AccountModel 和 GameModel 之间的一对多关系。不要忘记这是否是您第一次使用该模型,如果您首先使用代码而不是映射到现有数据库,您将需要添加和应用迁移来创建数据库。

详情见https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli