データベースに既に存在するオブジェクトに属性を変更する (実際に追加する) ことに苦労しています。
私のデータベースにはScenarioオブジェクトがあり、すべてのScenarioオブジェクトは (1 つ以上の)SceneWriterオブジェクトにリンクされています。今、私SceneWriterはScenario与えられScenarioIDた .
これが私がそれをやろうとした方法です:
string filmID = comboBox1.SelectedValue.ToString();
Scenario newScenario = new Scenario();
foreach (Scenario scenario in scenarioes)
{
string thisID = scenario.filmID.ToString();
if (thisID.Equals(filmID))
{
try
{
// remove old scenario from DB
myDatabase.Scenario.Remove(scenario);
myDatabase.SaveChanges();
// add new scenario to DB, which now contains new scenewriter
newScenario = scenario;
scenario.SceneWriter.Add(newScenewriter); // this newScenewriter I fetched before
myDatabase.Scenario.Add(newScenario);
myDatabase.SaveChanges();
}
catch (Exception ec)
{
MessageBox.Show(ec.ToString());
}
}
}
Scenarioしかし、このレコードを から削除しようとすると、エラーが発生しますmyDatabase。これは、他のテーブルとリンクされているためです。
したがって、私が必要とするのは、レコードを削除するのではなく、変更することです( this を追加するだけですSceneWriter)、できればmyDatabase.