Прошу прощения за непонятное название!EF 4.0: лучший способ добавить новые данные
Что я пытаюсь очень просто, у меня есть эти таблицы:
Maintable(ID)
Child1(MainTableID, ID)
Child2(MainTableID, ID)
Child3(MainTableID, ID)
Child4(MainTableID, ID)
Child2, Child3 и Child4 созданы из ребенка1, поэтому я их заново каждый раз Maintable или Child1 изменяется:
Child2 = GetChild2FromChild1()
Child3 = GetChild3FromChild1()
Child4 = GetChild4FromChild1()
После этого, я просто удалить старые таблицы, и сохранить вновь созданный:
using (var context = new EF())
{
context.DeleteObject(child2); // only the ones belong to Maintable
context.DeleteObject(child3);
context.DeleteObject(child4);
}
using (var context = new EF())
{
// because i always delete child2->4 , so i always set their state to be Added
// here i will add the new tables, something like this :
foreach (var child2 in Maintable.child2)
{
counterID--;
child2.State = State.Added;
child2.ID = counterID;
}
context.SaveChanges();
}
Я знаю, что это трудно понять, так вот шаги:
- Объект
Maintable
содержит четыре дочерние таблицы (1-> 4) - Everytime мне нужно обновить объект
Maintable
, мне придется удалить: Maintable.Child2, Maintable.Child3, Maintable.Child4, кроме ребенка1 - Тогда я буду добавлять новые данные в ребенка2, Child3, Child4
Но это решение действительно боль в заднице, я постоянно получаю ошибки, которые я едва ли могу понять, почему, и странные результаты lts и т. д., например, я ждал послеобеденной отладки без какого-либо положительного прогресса, прежде чем публиковать этот вопрос!
Так что я хочу спросить, есть еще один способ, который бы удовлетворить мои потребности, но и «чистый» один, потому что я думаю, что моя проблема не очень сложна, и я не очень хорошо знаком с C#
Это может быть мне, но я не понял из того, что вы просите. Это может быть и с другими людьми, подумайте над тем, чтобы пересмотреть свой вопрос. – Peter
Вы пытаетесь добавить новые строки? или обновить строки? ваш вопрос на самом деле не так ясен:/ –
wait, я отредактирую его, спасибо – NeedAnswers