在数据库中使用外键添加数据

时间:2017-06-13 16:53:37

标签: c# database entity-framework foreign-keys

这是我第一次使用数据库,所以我仍然试图了解这一切是如何工作的。 我正在尝试将数据(用户,注释,组)写入数据库。我有三节课。

第一个是用户:

public class User
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public List<Group> groups { get; set; }

    public User()
    {
        this.groups = new List<Group>();
    }
}

注意:

public class Note
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string Title { get; set; }
    public string Content{ get; set; }
    public string Password { get; set; }
    public List<Group> groups { get; set; }

    }

和小组:

public class Group
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public string Name { get; set; }    
}

我知道我应该添加外键但我不知道在哪里以及如何。我真的被困了所以任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:0)

添加外键之前。首先,您必须定义每个表之间的关系基数。要定义它,您可以想象每个表在现实生活中的表现方式。

例如,一个组可以/必须包含多个用户。用户可以同时在一个或多个组内。 因此,我们将组和用户之间的关系定义为 MANY TO MANY ,除非您定义它以便一个用户只能注册到一个组。在这种情况下,关系将变为 ONE TO MANY ONE 是组表, MANY 是指用户表。

现在,一旦定义了关系,通常在 MANY 表中设置外键,在这种情况下,它是用户表。因此,每个用户都有一个名为&#34; Group&#34;。

的外键

对于 MANY TO MANY 关系,在两个表中都设置了外键。这样每个表都包含另一个表的密钥。