gpt4 book ai didi

c# - 如何在 Entity Framework 中获取多个插入的标识值

转载 作者:行者123 更新时间:2023-11-30 12:11:14 24 4
gpt4 key购买 nike

我正在向表 QueryList 中插入值

    [QueryID] [WorkItemID] [RaisedBy]
1 123 xyz
2 234 abc

其中 QueryID 是一个 Identity 列。

我正在使用 foreach 循环并一次插入多个值。我的问题是如何在 Entity Framework 3.5 中获取所有新插入的 Identity

这是我的代码

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);

旁注:在您的代码示例中,您创建了一个 Query for 循环之外的对象,但根本没有使用它。这可能只是因为它只是一个示例,但如果您使用它或将它插入到您的数据上下文中,请不要创建它。

关于c# - 如何在 Entity Framework 中获取多个插入的标识值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15872423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com