0

我有两个模型类,我想在其中建立一对一的关系。当我进行迁移时,我收到一个错误:

ALTER TABLE 语句与 FOREIGN KEY 约束“FK_dbo.Uzytkownik_dbo.UserProfile_UserId”冲突。冲突发生在数据库“db_wydarzenia”、表“dbo.UserProfile”、列“UserId”中。

    [Table("UserProfile")]
    public class UserProfile
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int UserId { get; set; }
        public string UserName { get; set; }
    }

    [Table("Uzytkownik")]
    public class Uzytkownik
    {
        [Key]
        public int UzytkownikID { get; set; }

        public int UserId { get; set; }

        public string Imie { get; set; }
        public string Nazwisko { get; set; }
        public string Telefon { get; set; }
        public string Email { get; set; }

        [ForeignKey("UserId")]
        public UserProfile UserProfile { get; set; }


    }

编辑:问题已解决 :) 我从 uzytkownik 表中删除了所有数据,它就可以了。

4

1 回答 1

0

如果您想要一对一 - 您不能同时指定主键和外键。一对一是通过主键(pk == pk)建模的,否则它变成“多重性”(并且只是典型的一对多)。

要获得您想要的内容,只需删除您的其他 PK - 并将用户UserId作为主要用户和 fk...

[Table("Uzytkownik")]
public class Uzytkownik
{
    // [Key] public int UzytkownikID { get; set; }
    [Key] 
    public int UserId { get; set; }
    [ForeignKey("UserId")]
    public UserProfile UserProfile { get; set; }
}
于 2013-04-04T11:06:22.440 回答