C# 实体框架只插入一条记录

C# 实体框架只插入一条记录,c#,oracle,asp.net-mvc-5,entity-framework-6,C#,Oracle,Asp.net Mvc 5,Entity Framework 6,我通过传递3个参数在数据库中保存一条记录,传递number参数从一个表到另一个表选择记录的数量。但是,写入的循环只插入1条记录,而不是传递的number参数 我正在实体框架中使用Take()方法来选择记录。它只插入循环中最后的记录 public async Task<bool> Save(string company, int number, string registrationNumber) { using (var trans = _dbContext.Database

我通过传递3个参数在数据库中保存一条记录,传递number参数从一个表到另一个表选择记录的数量。但是,写入的循环只插入1条记录,而不是传递的number参数

我正在实体框架中使用
Take()
方法来选择记录。它只插入循环中最后的记录

public async Task<bool> Save(string company, int number, string registrationNumber)
{
    using (var trans = _dbContext.Database.BeginTransaction())
    {
        var db = new SibaCiidDbContext();
        var dbSet = _dbContext.Set<IntermediaryAssignment>();

        // pick number of records 
        var data = await (from s in db.StickerDistributions
                          where s.Dispatched == false &&  
                                s.CompanyCode == company
                          select s).Take(number).ToListAsync();

        var intermediary = (await _repo.FindBy(s => s.RegistrationNumber  == registrationNumber && 
                                                    s.Status == EntityStatus.Active)).FirstOrDefault();

        var entity = new IntermediaryAssignment();

        foreach (var sticker in data)
        {
            entity.CompanyCode = sticker.CompanyCode;
            entity.StickerCode = sticker.StickerCode;
            entity.RegistrationNumber = intermediary.RegistrationNumber;
            entity.Status = EntityStatus.Active;
            entity.CreatedDate = DateTime.Now;
            entity.Dispatched = false;
            entity.IntermediaryType = intermediary.IntermediaryType;

            dbSet.Add(entity);
        }

        trans.Commit();

        return  await _dbContext.SaveChangesAsync() > 0;
    }
}
公共异步任务保存(字符串公司、整数编号、字符串注册编号)
{
使用(var trans=_dbContext.Database.BeginTransaction())
{
var db=new SibaCiidDbContext();
var dbSet=_dbContext.Set();
//选择记录的数量
var数据=等待(从数据库中的s开始)
其中s.Dispatched==false&&
s、 公司代码==公司
选择s.Take(number.ToListAsync();
var Intermediate=(等待_repo.FindBy(s=>s.RegistrationNumber==RegistrationNumber&&
s、 Status==EntityStatus.Active)).FirstOrDefault();
var entity=new intermediarysignment();
foreach(数据中的var标签)
{
entity.CompanyCode=贴纸.CompanyCode;
entity.StickerCode=sticker.StickerCode;
entity.RegistrationNumber=中间人.RegistrationNumber;
entity.Status=EntityStatus.Active;
entity.CreatedDate=DateTime.Now;
entity.Dispatched=false;
entity.IntermediaryType=intermediate.IntermediaryType;
添加(实体);
}
trans.Commit();
return wait_dbContext.SaveChangesAsync()>0;
}
}

您正在创建一个实体,然后将其更新3次。您需要为每个新记录创建一个新实体

新中介分配()
移动到循环内

     foreach (var sticker in data)
     {
            var entity = new IntermediaryAssignment();


            entity.CompanyCode = sticker.CompanyCode;
            entity.StickerCode = sticker.StickerCode;
            entity.RegistrationNumber = intermediary.RegistrationNumber;
            entity.Status = EntityStatus.Active;
            entity.CreatedDate = DateTime.Now;
            entity.Dispatched = false;
            entity.IntermediaryType = intermediary.IntermediaryType;


            dbSet.Add(entity);

        }

数据对象中有多少条记录?如果我将3作为数字传递,则数据对象中有3条记录,但它仅插入对象中的最后一项