2015-08-31 9 views
5

Merhaba ASP.Net ile bir proje başlatıyorum ve Microsoft Eğitim Kamplarını takip ediyorum. Benim yayınlanan api'sine REST dilekçe yapmaya çalışıyordu ve gelecek istisna var: 'PlataformaTest.Models.AnswerModel' geçerli değil tipine mülkiyet 'QuestionID' üzerindeEntity Framework .net: "Ad değeri geçerli bir gezinme özelliği adı olmalıdır."

ForeignKeyAttribute. özelliğinin 'OptionModel' özelliğine bağlı olan bağımlı türü 'PlataformaTest.Models.AnswerModel' öğesinde bulunamadı. Ad değeri geçerli bir navigasyon özelliği adı olmalıdır "" exceptionType. ":" Ben kelimesi kelimesine Eğitim excercise takip etmiyorum System.InvalidOperationException" Bu arada

, Bazı isimler değiştirdik ve bu nedenle, sadece sıfırdan tüm süreç olacağını öğrenmek için denemek için.

Herhangi bir yardım ve rehberlik gerçekten takdir edilmektedir. teşekkür ederim.

cevap

21

Ok. Ben sadece durumda herkes. Bu sorunu çözdük aynı soruna sahip, işte problem ve cevap:

Ben gibi benim varlıkları vardı:

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; } 
    } 
} 

Ama

ForeignKey("OptionModel") 

"Sanal" değişkeninin aynı isme sahip olduğunu, öğrendim. Bunun gibi:

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; } 
    } 
} 

Sınıfın ismine sahip olması gerektiğini düşündüm, ama değil. Varlığın Yabancı Anahtarını eşlemek için nesnenin adını arar.

+2

Gezinmenin "sanal" referansa olduğunu belirtmek için yukarı 1. – Catchops

+0

Teşekkürler zamanımı kurtardın :) – usman