entity framework.net:“Name值应该是有效的导航属性名称。”

您好我正在使用ASP.Net开始一个项目,我正在关注微软的训练营。 我试图向我发布的api做一个REST请求,然后我得到了下一个例外:

类型为“PlataformaTest.Models.AnswerModel”的属性“QuestionId”上的ForeignKeyAttribute无效。 在依赖类型’PlataformaTest.Models.AnswerModel’上找不到导航属性’OptionModel’。 Name值应该是有效的导航属性名称。“,”exceptionType“:”System.InvalidOperationException“

顺便说一下,我没有逐字逐句地遵循训练练习,我改变了一些名字,所以,试图找出从零开始的所有过程。

任何帮助和指导真的很感激。 谢谢。

好。 我已经解决了这个问题。 万一有人有同样的问题,这里是问题和答案:

我有我的实体,如:

namespace PlataformaTest.Models { public class AnswerModel { public int Id { get; set; } public string UserId { get; set; } [ForeignKey("OptionModel"), Column(Order = 0)] public int QuestionId { get; set; } [ForeignKey("OptionModel"), Column(Order = 1)] public int OptionId { get; set; } [JsonIgnore] public virtual OptionModel OptionModelEx { get; set; } } } 

但我发现了那个

 ForeignKey("OptionModel") 

必须具有“虚拟”变量的相同名称。 像这样:

 namespace PlataformaTest.Models { public class AnswerModel { public int Id { get; set; } public string UserId { get; set; } [ForeignKey("OptionModel"), Column(Order = 0)] public int QuestionId { get; set; } [ForeignKey("OptionModel"), Column(Order = 1)] public int OptionId { get; set; } [JsonIgnore] public virtual OptionModel OptionModel { get; set; } } } 

我认为它必须有Class的名称,但事实并非如此。 它查找要映射实体的外键的对象的名称。