私は以下のような2つのクラスを持っています。Entity Frameworkの外部キーが入力されたエンティティとして残っています
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の新しいインスタンスを作成した後、単にQuestLocationクラスの新しいインスタンスを作成するだけで、Questのlocationプロパティを設定しました。
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のままでした。どうすればこの問題を思いつくことができますか?
パフォーマンスに問題はありませんか?この場合、オブジェクトを追加するたびに変更を保存しなければならないからです。 – kkocabiyik
最初の 'SaveChanges()'メソッドを省略することができます。私は、その場合パフォーマンスの問題が解決するかもしれないと思います。 – sarwar026
最初のSaveChangesを省略した場合、私のコードとあなたのコードの違いは何ですか?つまり、Quest_IDを設定してQuestLocationオブジェクトインスタンスを自動的にクエストに設定してはいけませんか? – kkocabiyik