繁体   English   中英

保存更改后,如何首先使用实体​​框架代码从数据库中检索对象集合的ID

[英]How to retrieve Ids of a collection of objects after savechanges from database using Entity Framework code first

我有一种方法可以先使用代码将对象集合添加到数据库。 这里使用AddRange方法添加了集合。 但是我需要数据库中每个添加的对象的ID(主键)。 这里的主键是数字并且自动递增。 它如何检索呢?

谢谢

private bool CaseTaskMapping(long workFlowId,long caseDetailId)
{
    if (workFlowId > 0)
    {
        try
        {
            var StateList = dbContext.States.Where(state => state.WorkflowId == workFlowId);
           List<CaseTaskMapping> CaseTaskMappingList = new List<CaseTaskMapping>();

           foreach (var state in StateList)
           {
               var TaskList = dbContext.Tasks.Where(task => task.StateId == state.StateId);                   

               foreach (var tasks in TaskList)
               {
                   CaseTaskMappingList.Add(new CaseTaskMapping
                        {
                            CaseDetailsId = caseDetailId,
                            TaskId = tasks.TaskId,
                            IsComplete = false,
                            LastUpdatedBy = GetLoggedUserId(),
                            LastUpdatedOn = DateTime.Now
                        });
               }
           }

           dbContext.CaseTaskMappings.AddRange(CaseTaskMappingList);
           dbContext.SaveChanges();

           // Here I need Ids of the above collection save to the database
           return true;
       }
    }
}

在调用SaveChanges之后,实体框架将自动在新添加的对象上填充主键。

由于您已经引用了要添加到名为CaseTaskMappingList的变量中的所有对象,因此可以在SaveChanges操作之后简单地使用该变量来获取新的ID。

var insertedKeys = CaseTaskMappingList.Select(x => x.Id); // assuming that Id is the name of Primary Key

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM