如何批量插入数据库而不是逐一插入

How to insert to database in bulk instead of inserting it 1 by 1

如何根据 SelectedList.Count 的数量使 list 收到超过 1 个值。

代码:

 for (int i = 0; i < SelectedList.Count; i++)
            {
                lastSeriesNo++;

                string assetcodegen = string.Format("{0}-{1}-{2}", List[i].AssetCategoryID, CurrentApplication.Now.Year, lastSeriesNo.ToString().PadLeft(5, '0'));
                AssetCodeOfficial[i] = assetcodegen;


                var list = (from x in ctx.DataContext.AssetRegistryEntities
                            where x.AssetCode == SelectedList[i].AssetCode
                            select x
                            ).AsEnumerable();

                foreach (var asset in list)
                {
                    asset.SeriesNumber = (short)lastSeriesNo;
                    asset.Status = 'A';
                    asset.IsTemp = false;
                    asset.UpdatedBy = CurrentApplication.CurrentUserId;
                    asset.UpdatedDate = asset.AssetCreatedDate = CurrentApplication.Now;
                    AssetCodetemp[i] = asset.AssetCode;
                    depreciationInMonths = asset.DepnInMonths;

                    ctx.DataContext.SubmitChanges();
                }

            }

谢谢大家的帮助,我设法解决了我的问题。它已经将数据作为批量保存到数据库中,而不是 1 乘 1 保存。

所以我对 list 使用 lambda 表达式,并使用 .addRange 将项目添加到列表中。 list.AddRange(ctx.DataContext.AssetRegistryEntities.Where(x=>x.AssetCode.Trim() == SelectedList[i].AssetCode.Trim()));

Code:

List<NXpert.FixedAsset.DataAccess.AssetRegistryEntity> list = new List<NXpert.FixedAsset.DataAccess.AssetRegistryEntity>();

                for (int i = 0; i < SelectedList.Count; i++)
                {
                    lastSeriesNo++;

                    string assetcodegen = string.Format("{0}-{1}-{2}", List[i].AssetCategoryID, CurrentApplication.Now.Year, lastSeriesNo.ToString().PadLeft(5, '0'));
                    AssetCodeOfficial[i] = assetcodegen;

                    list.AddRange(ctx.DataContext.AssetRegistryEntities.Where(x=>x.AssetCode.Trim() == SelectedList[i].AssetCode.Trim()));
                    AssetCodetemp[i] = list[i].AssetCode;
                }

                foreach (var asset in list)
                {
                    asset.SeriesNumber = (short)lastSeriesNo;
                    asset.Status = 'A';
                    asset.IsTemp = false;
                    asset.UpdatedBy = CurrentApplication.CurrentUserId;
                    asset.UpdatedDate = asset.AssetCreatedDate = CurrentApplication.Now;
                    depreciationInMonths = asset.DepnInMonths;
                }
                ctx.DataContext.SubmitChanges();