首页 > 解决方案 > 创建外键时实体框架中的验证错误

问题描述

我有 2 张桌子。一个是Preference,另一个是Profile。配置文件可以有 0 或 1 个首选项。我正在尝试Preference使用名称 Profile_id 创建一个外键列,但它给了我验证错误:这是例外:

“在模型生成过程中检测到一个或多个验证错误:\r\n\r\nPreference_Profiles_Source: : Multiplicity is not valid in Role 'Preference_Profiles_Source' in relationship 'Preference_Profiles'。因为从属角色属性不是关键属性,所以上从属角色的多重性的界限必须是 '*'。\r\n"

这是我的代码

public class Profile
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Required]
        public virtual int Id { get; set; }
        [Required]
        public virtual string name { get; set; }
        [Required]
        public virtual string profile_pic { get; set; }
        public virtual Watchlist Watchlist { get; set; }

        public virtual Preference Preference { get; set; }
    }

这是为了偏好:

 public class Preference
    {

        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Required]
        public virtual int Id { get; set; }
        public virtual Language Language { get; set; }
        public virtual Type Type { get; set; }

        public virtual Genre Genre { get; set; }

        [Required]
        public virtual Profile Profiles { get; set; }

        public virtual Classifications Classifications { get; set; }

        [ForeignKey("Profiles")]
        public virtual int Profile_id { get; set; }

    }

我真的不知道是什么导致了这个问题,有人可以帮我解决这个问题吗?

标签: c#sqldatabaseentity-framework

解决方案


你需要使Profile_id可以为空:

public virtual int? Profile_id { get; set; }

推荐阅读