1

我有 2 节课,如下所示。

public class Quest
{
    public int ID{ get;set; } 

    public string Objective
    {
        get;
        set;
    }

    public DateTime StartDate
    {
        get;
        set;
    }

    public string Story
    {
        get;
        set;
    }

    public virtual QuestLocation Location
    {
        get;
        set;
    }
}
    public class QuestLocation
{
    public DateTime CreateDate
    {
        get;
        set;
    }

    public int ID
    {
        get;
        set;
    }

    public double Latitude
    {
        get;
        set;
    }

    public double Longitude
    {
        get;
        set;
    }

    public virtual Quest Quest
    {
        get;
        set;
    }

}

我创建了一个新的 Quest 实例,然后我设置了 Quest 的 location 属性,只需创建一个 QuestLocation 类的新实例。

   Question q = new Question();
   q.StartDate = DateTime.Now;
   q.Objective = "foo";
   q.Location = new QuestLocation(){ CreateDate = DateTime.Now, Latitude = 10 , Longitude = 10 };

   And add newly created Quest into Database :
   DataContext.Quests.Add(q);
   DataContext.SaveChanges();

当我查看我的数据库时,到目前为止我已经初始化的每个对象都被创建了。然而,QuestLocation 的外键“Quest_ID”仍然为 NULL。我怎么能想出这个问题?

4

2 回答 2

0

您必须在 questlocation 对象上设置 quest_id。在数据库中将外键字段 (quest_id) 设置为非空也是一个很好的做法。

于 2012-04-15T18:43:08.573 回答
0
Question q = new Question();
QuestionLocation qL = new QuestLocation(){ CreateDate = DateTime.Now, Latitude = 10 , Longitude = 10 };
q.StartDate = DateTime.Now;
q.Objective = "foo";
q.Location = qL;

//And add newly created Quest into Database :
DataContext.QuestLocations.Add(qL);
DataContext.SaveChanges();

DataContext.Quests.Add(q);
DataContext.SaveChanges();
于 2012-04-15T18:46:03.360 回答