如何在实体框架中获得多个插入的身份值
本文关键字:插入 身份 实体 框架 | 更新日期: 2023-09-27 18:08:12
我正在向表QueryList
插入值
[QueryID] [WorkItemID] [RaisedBy]
1 123 xyz
2 234 abc
其中QueryID
为Identity
列。
我使用foreach
循环并一次插入多个值。我的问题是如何获得所有新插入的Identity
值在实体框架3.5
这是我的代码
using (TransactionScope currentScope = new TransactionScope())
{
Query newQuery = new Query();
foreach (long workItemId in workItemID)
{
newQuery = new Query();
...
currentScope.Complete();
success = true;
}
}
entityCollection.SaveChanges(true);
int QueryID = newQuery.QueryID; //It gives me last 1 Identity value
您必须分别跟踪每个新创建的Query
对象。为了简单起见,我建议使用List<Query>
:
using (TransactionScope curentScope = new TransactionScope())
{
List<Query> newQueries = new List<Query>();
Query newQuery = new Query();
newQueries.Add(newQuery);
foreach (long workItemId in workItemID)
{
newQuery = new Query();
newQueries.Add(newQuery);
...
curentScope.Complete();
success = true;
}
}
entityCollection.SaveChanges(true);
var queryIDs = newQueries.Select(q => q.QueryID);
边注:在您的代码示例中,您在for循环之外创建了一个Query
对象,但根本没有使用它。这可能只是因为它只是一个示例,但是如果您在数据上下文中使用它或插入它,就不要创建它。