如何获取刚刚插入到实体框架表中的对象的列表

时间:2018-08-09 07:42:55

标签: c# performance entity-framework

  

获取对象列表的最佳方法刚刚被插入到   数据库?

我有向数据库添加新对象列表的代码,我想检索对象列表而不必从数据库中再次选择。

我希望SQL Server触发器中有类似insert的内容。

这是我的代码段。

        List<string> productNames = new List<string>();

        foreach (var name in productNames)
        {
            var product = new Product {Name = name, Color = "something", Body="something body" };
            DbContext.Products.Add(product);
        }

        DbContext.SaveChanges();

        var result = ListProductsInserted; // I want to get list product
  

我不想重写查询以从数据库检索数据   再次。

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

如果我正确地理解了您的问题,请使用下面的代码

List<string> productNames = new List<string>();
List<Product> holdProducts = new List<Product>();
foreach (var name in productNames)
{
    var product = new Product {Name = name, Color = "something", Body="something body" };
    DbContext.Products.Add(product);
    holdProducts.Add(product);
}
DbContext.SaveChanges();
var result = holdProducts; 

答案 1 :(得分:0)

最简单的方法是DbEntityEntry.Reload()

您可以像这样使用它:

yourContext.Entry(yourEntity).Reload();