データベースに既に存在するオブジェクトに属性を変更する (実際に追加する) ことに苦労しています。
私のデータベースには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
.