[英]How to prevent Entity Framework from adding referenced objects to database on SaveChanges?
[英]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.