c# - 创建外键时实体框架中的验证错误
问题描述
我有 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; }
}
我真的不知道是什么导致了这个问题,有人可以帮我解决这个问题吗?
解决方案
你需要使Profile_id可以为空:
public virtual int? Profile_id { get; set; }
推荐阅读
- android - 启动 BLUETOOTH_SETTINGS 操作返回 SecurityException(需要 BLUETOOTH_ADMIN 权限)
- python - 容器化的 python 应用程序无法连接到在 Docker 容器上运行的 RabbitMQ 服务器
- java - 在原始文件夹中查找文件的路径?
- excel - 有没有办法为动态范围应用填充公式?
- authentication - Mosquitto websockets 安全最佳实践
- fullcalendar - Fullcalendar 4:将 Json Feed 与 MVC 结合使用
- ruby-on-rails - Rails 自动加载嵌套类:LoadError(无法自动加载常量 ModuleName::ClassName)
- sql-server - 通过Powershell执行存储过程后转换日期格式?
- python - Python npzFile 对象非常慢
- c# - 不等待从 UnhandledException 处理程序调用的异步方法