EntitySQL - 未将对象引用设置为对象的实例

时间:2009-10-02 18:26:56

标签: c# entity-framework linq-to-entities

当我尝试在作为外键的列上执行插入时,我收到此错误。这是我如何分配值

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();

当我将question_id和userid作为外键时,我开始收到此错误。有没有办法来解决这个问题?

2 个答案:

答案 0 :(得分:1)

最有可能的是,“问题”是一个被引用的实体,对吧?默认情况下,这些包含在您的查询中 - 您需要在第一个查询中明确包含它们

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

<击> “问题”是1:1还是1:n导航属性?在1:n的情况下,您可以直接检查“问题”属性:

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

   ....
}

在1:1导航属性的情况下,您可能还有一个“QuestionReference”属性:

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

   ....
}

马克

答案 1 :(得分:0)

在分配属性之前检查at是否为空?