您好我正在与ASP.Net开展一个项目,并且我正在跟随微软的训练营。我试图向我发布的api做一个REST请愿,然后我得到了下一个例外:
属性' QuestionId'上的ForeignKeyAttribute在类型上 ' PlataformaTest.Models.AnswerModel'无效。导航 属性' OptionModel'在依赖类型上找不到 ' PlataformaTest.Models.AnswerModel&#39 ;. Name值应该是有效的 导航属性 命名"" exceptionType":" System.InvalidOperationException"
顺便说一句,我没有逐字逐句地遵循训练练习,我改变了一些名字,所以,试图找出从零开始的所有过程。
非常感谢任何帮助和指导。谢谢。
答案 0 :(得分:26)
确定。我已经解决了这个问题。万一有人遇到同样的问题,这就是问题和答案:
我有我的实体:
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的名称,但它没有。它查找要映射实体的外键的对象的名称。