Entity framework EF 4.0:追加新数据的最佳方式
我为这个难以理解的标题感到抱歉 我尝试的很简单,我有以下表格:Entity framework EF 4.0:追加新数据的最佳方式,entity-framework,Entity Framework,我为这个难以理解的标题感到抱歉 我尝试的很简单,我有以下表格: Maintable(ID) Child1(MainTableID, ID) Child2(MainTableID, ID) Child3(MainTableID, ID) Child4(MainTableID, ID) Child2、Child3和Child4是从Child1创建的,因此每次更改Maintable或Child1时,我都会重新创建它们: Child2 = GetChild2FromChild1() Child3 =
Maintable(ID)
Child1(MainTableID, ID)
Child2(MainTableID, ID)
Child3(MainTableID, ID)
Child4(MainTableID, ID)
Child2、Child3和Child4是从Child1创建的,因此每次更改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();
}
我知道这很难理解,所以以下是步骤:
- 实体
包含四个子表(1->4)Maintable
- 每次我需要更新实体
,我都必须删除:Maintable.Child2、Maintable.Child3、Maintable.Child4,Child1除外Maintable
- 然后我将新数据附加到Child2、Child3、Child4
所以我想问的是,有没有另一种方法可以满足我的需要,但也是一种“干净”的方法,因为我认为我的问题不是很复杂,而且据我所知,我对C不太熟悉,你实际上只是在编辑child2-3-4的ID。如果我没弄错的话,这就是更新的方法
using (var context = new EF())
{
foreach (var child2 in Maintable.child2)
{
counterID--;
child2.ID = counterID;
}
foreach (var child3 in Maintable.child3)
{
counterID--;
child3 .ID = counterID;
}
foreach (var child4 in Maintable.child4)
{
counterID--;
child4 .ID = counterID;
}
context.SaveChanges();
}
但我怀疑这是你问的问题://可能是我,但从你的问题中我一点也不明白。也可能与其他人一样,考虑修改你的问题。你想添加新的行吗?还是更新行?您的问题实际上不太清楚:/等等,我会编辑它,谢谢您使用
using(var context=new EF())
,在第一个中删除对象,但由于您没有使用范围将其保存在第二个中,因此不会删除它们。@Null:这是我问题的一个更详细的版本,请看一看:这是我问题的一个更详细的版本,请看: