【问题标题】:Incorrect or random insert order in entity framework实体框架中的插入顺序不正确或随机
【发布时间】:2021-10-12 02:12:52
【问题描述】:

我正在寻找一种允许您按创建顺序将记录插入数据库的解决方案。
到目前为止,我发现 ef 不支持此类活动的信息。
如何解决这个问题?
我打开了自动增量,所以我不能为新记录提供一个 id(或者至少我是这么认为的)

以下示例在db中从下到上或随机写入。

var subcategories = new List<Subcategory>()
            {
                new Subcategory { SubcategoryName = "This should be first", CategoryId = 1 },
                new Subcategory { SubcategoryName = "Second", CategoryId = 1 },
                new Subcategory { SubcategoryName = "Third", CategoryId = 2 },
                new Subcategory { SubcategoryName = "Fourth", CategoryId = 2 },
                new Subcategory { SubcategoryName = "LastOne", CategoryId = 3 }
            }

context.Subcategories.AddRange(subcategories);
context.SaveChanges();

【问题讨论】:

  • 数据库行没有固有的顺序。如果您想要特定的订单,请添加一个列,以便稍后在其上使用 ORDER BY

标签: .net entity-framework


【解决方案1】:

我正在寻找一种允许您以正确的顺序将记录插入数据库的解决方案。

要控制顺序,请在添加每个实体后调用 SaveChanges()。您可以将所有调用包装在一个事务中以优化性能。

【讨论】:

  • 这不会减慢 init 的执行速度吗?例如,成本是否最优? 100 条记录?
  • 这不是最佳的,但在那个规模上应该是可以接受的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
相关资源
最近更新 更多