2017-04-19 123 views
-1

如何一次在我的桌子上创建多行? 我希望能够添加不存在的行,并且只要按下提交就可以编辑/更新现有的行。如何一次创建多行?

为了测试这个,我只在数据库中创建了2个字段,并且似乎无法添加多行。

numofbuilding的值= 5. 只插入一行。

尝试:

public ActionResult CreateBuildings(Guid pi, int? numofbuilding) 
{ 
    OnboardModel model = new OnboardModel(); 
    List<onboard_BuildingInfo> coms = new List<onboard_BuildingInfo>(); 

    for (int i = 1; i <= (numofbuilding+1); i++) 
    { 
     onboard_BuildingInfo f = new onboard_BuildingInfo 
     { 
      projectID = pi, 
      building_ID = i 
     }; 
     coms.Add(f); 
    } 
    context.onboard_BuildingInfos.InsertAllOnSubmit(coms); 
    context.SubmitChanges(); 
    return View(model); 
} 

,并试图:

public ActionResult CreateBuildings(Guid pi, int? numofbuilding) 
{ 
    OnboardModel model = new OnboardModel(); 
    for (int i = 1; i <= numofbuilding; i++) 
    { 
     onboard_BuildingInfo coms = new onboard_BuildingInfo 
     { 
      projectID = pi, 
      building_ID = i 
     }; 
     context.onboard_BuildingInfos.InsertOnSubmit(coms); 
     context.SubmitChanges(); 
    } 

    return View(model); 
} 

BuildingInfo-表

Create Table onboard_BuildingInfo (
     projectID      UNIQUEIDENTIFIER DEFAULT  NEWID() , 
     building_ID      int     NULL , 
     city_building     varchar(500)  NULL , 
     numberofcommon     INT     NULL 
     PRIMARY KEY (projectID) 
    ) 
+0

当你说它不起作用时,你是什么意思?你有错误吗?只插入一行?你的变量名为numofbuilding的价值是什么?它是每个机会2 ....哈哈 – Milney

+0

@Milney价值的numofbuilding是5,是的,只有一行被插入。 –

+0

我们需要查看您的存储库的代码。 –

回答

0

充分利用projectID不是主键,或对projectIDbuilding_ID复合键。主键必须是唯一的,因此projectID列中不能有重复的项目。组合键将意味着(projectID * building_ID)的组合必须是唯一的,因此您可能在任一列中都有重复项,但不是两者都有重复项。