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的名称,但事实并非如此。 它查找要映射实体的外键的对象的名称。