2009-10-02 7 views
0

Je reçois cette erreur lorsque j'essaie de faire un insert sur une colonne qui est une clé étrangère. Voici comment j'affecter la valeurEntitySQL - Référence d'objet non définie sur une instance d'un objet

var at = MvcApplication1.Entity.alttitles.Createalttitles(0, altTitleText); 
     at.question.question_id = questionid; //Error here 
     at.userinfo.user_userid = _AuthorID; //Error here 
     context.AddToalttitles(at); 
     res = context.SaveChanges(); 

Au moment de la question_id et la userid une clé étrangère, j'ai commencé à obtenir cette erreur. Y'a t'il un moyen d'arranger cela?

Répondre

1

Très probablement, la "question" est une entité référencée, non? Ceux-ci sont pas inclus par défaut dans votre requête - vous devrez soit spécifiquement les inclure dans votre première requête

var at = MvcApplication1.Entity.alttitles 
       .Createalttitles(0, altTitleText) 
       .Include("question"); 

Est « question » 1: 1 ou 1: n la navigation? Dans le 1: n cas, vous pouvez vérifier la "question" propriété directement: propriété, vous avez probablement 1 cas de la propriété de navigation un "QuestionReference" ainsi::

if(!at.question.IsLoaded) 
{ 
    at.question.Load(); 

    .... 
} 

Dans un 1

if(!at.QuestionReference.IsLoaded) 
{ 
    at.QuestionReference.Load(); 

    .... 
} 

Marc

+0

Vos exemples sont à l'envers. "Référence" est pour 1: 1. –

+0

oups - merci de le signaler! Je ne l'ai pas beaucoup utilisé ces derniers temps (en attente d'EF4), donc ma mémoire commence à glisser :-) –

+0

Createalttitles est une fonction sql create d'entité pour insérer de nouvelles lignes dans la base de données. Il n'a pas une option Inclure dans intelisense – user161433

0

Vérifiez si at at n'est pas nul avant d'affecter ses propriétés?

Questions connexes