none
WCF+RIA如何批量添加数据? RRS feed

  • 问题

  • 我现在希望通过一个方法将第一个表里的数据批量添加到第二个表里,第二个表的主键是自动增长的

    我将第一个表的数据加载到一个combobox里面,然后通过循环combobox items 来逐一添加

    var a = this.cboMoldDwgVersion.Items;

                    OA.Web.OaDomainContext dc = new Web.OaDomainContext();

                    foreach (var item in a)

                    {

                        var b = item as OA.Web.Mold_Dwg_Version;

                        OA.Web.MoldQuoteDetail mqd = new Web.MoldQuoteDetail();

                        mqd.MoldDwg_Identity = b.MoldDwg_Identity;

                        mqd.QuteNo = this.txtQuoteNo.Text;

     

                        dc.MoldQuoteDetails.Add(mqd);

     

                    }

                    dc.SubmitChanges();

    但是这样好像有问题,有什么好的方法,望大大们帮忙

    2010年9月7日 8:29

答案

  • 没看出来为什么 要用个ComboBox作中间人呢?

    直接循环 dc.Mold_Dwg_Versions不就可以了吗? 其他应该一样吧.

    • 已标记为答案 冷月 2010年9月8日 8:33
    2010年9月7日 19:02

全部回复

  • 没看出来为什么 要用个ComboBox作中间人呢?

    直接循环 dc.Mold_Dwg_Versions不就可以了吗? 其他应该一样吧.

    • 已标记为答案 冷月 2010年9月8日 8:33
    2010年9月7日 19:02
  • 噢是的,这个操作多余了,因为dc.SubmitChanges(),是一个异步的方法,我数据库的表里的主键是标识符,

    所以每次执行到这一步就会出现一个UnHandler的错误

    2010年9月8日 3:53
  • 如果你指的是MoldDwg_Identity 是数据库自动生成的键值,那你应该省略对其进行赋值,否则数据库会抱错.

    这样SubmitChanges返回后,这些新数据的键值会被自动更新成数据库的值.

    2010年9月8日 4:36
  • 我的主键是另外的一个autoid,MoldDwg_Identity是一个外键

     OA.Web.Mold_Dwg_Versions 我只是希望从中获取特定的一些值,这需要一个loadOperation

    好像这样写是不行的

    2010年9月8日 7:10
  • 可能被搞得有点糊涂了,其实我只想是拷贝一份数据,例如,一份已经冻结的报价单,我希望将里面的数据拷贝到一份新的报价单里面,同时将原有数据里的报价单编号改成新的报价单编号,这样可以对生成的报价单进行比较的小的修改,而不是全部重新填写,我的WPF上实现了这样的功能,WCF +ria 还不是很熟悉
    2010年9月8日 7:25
  • 我的主键是另外的一个autoid,MoldDwg_Identity是一个外键

     OA.Web.Mold_Dwg_Versions 我只是希望从中获取特定的一些值,这需要一个loadOperation

    好像这样写是不行的


    是的,你需要Load以后才有现有表中的数据.而且Load的是异步发生的,所以要在Completed发生后才有.

     

    2010年9月8日 18:43