Asp.net mvc 3 mvc中的问题在同一post命令中发布新表并在另一个表中记录该表ID

Asp.net mvc 3 mvc中的问题在同一post命令中发布新表并在另一个表中记录该表ID,asp.net-mvc-3,save,edmx,Asp.net Mvc 3,Save,Edmx,好的,我已经尝试了很多不同的方法,有些时候有效,有些时候不有效,所以我想找出可靠的方法来确保这个过程正常工作 我有4个表,其中1个表存储其他3个表Id,每个页面提交 表1与表2同时创建,表2是表单表,表1只是将所有4个表连接在一起的一种方式 One O = new One(); _db.Twos.AddObject(T); O.TId = T.Id; _db.Ones.AddObject(O); _db.SaveChanges(); 这是可行的,但其他两个表有问题,3个工作,4个收支平衡,代码

好的,我已经尝试了很多不同的方法,有些时候有效,有些时候不有效,所以我想找出可靠的方法来确保这个过程正常工作

我有4个表,其中1个表存储其他3个表Id,每个页面提交

表1与表2同时创建,表2是表单表,表1只是将所有4个表连接在一起的一种方式

One O = new One();
_db.Twos.AddObject(T);
O.TId = T.Id;
_db.Ones.AddObject(O);
_db.SaveChanges();
这是可行的,但其他两个表有问题,3个工作,4个收支平衡,代码与3相同

我不喜欢使用的一种解决方案是通过会话或模型对象将每个表传递到最后,然后将它们一起提交,但我认为这会导致更多问题

编辑-

我不确定还能添加什么,但基本问题是我有一个核心表和3个子表,每个表在不同的时间创建新记录

3次扑救

第一个=新的核心记录+1个新的子表记录-工作

第二个=更新核心记录+1个新的子表记录-工作

第三个=更新核心记录+1个新的子表记录-中断

第二个/第三个保存示例代码,Th是传入的表对象,表示第三个表,O是核心表,如顶部代码所示

O.Three = Th;
_db.SaveChanges();
这将正确地提取ID并在第二次保存时将其保存到core表,但在第三次保存时不会这样做,即使代码相同且表具有相同的连接

每个pull-OId都是核心表Id,因此每个表也知道在哪里保存

public ActionResult Three(int OId, FormCollection fc)
每次推

[HttpPost]
    public ActionResult Three(Three Th, FormCollection fc)
因为除了引用更改之外没有其他内容,我认为这与其他内容相关,因为它基本上将日期/时间分配给表值,然后在尝试保存更改之前检查ModelState.IsValid


我也尝试过使用UpdateModel,但它也不起作用,所以有人知道有其他解决方案吗?

数据库中t.id的id,在O.TId=t.id行中;在代码中的该点上不相关。必须调用saveChanges();用于将id馈送到对象中

尝试:


这真的很模糊,你能帮我们清理一下吗?@TravisJ希望这有助于解释为什么这最初会导致问题,但我注意到这是我在vs12中的做法,从来没有出现过问题,因此将其标记为正确。
One O = new One();
_db.Twos.AddObject(T);
_db.SaveChanges();
O.TId = T.Id;
_db.Ones.AddObject(O);
_db.SaveChanges();