0

我正在使用实体框架并遇到了一个奇怪的问题。我正在尝试将集合保存到数据库中(例如:回合集合)。现在这个集合中的每个项目又都有一个子元素的集合(比如:事件集合)。

看起来像这样:

Round 1
    (No Child Elements)
Round 2
    Event 1
    Event 2
    Event 3
Round 3
    (No Child Elements)
Round 4
    Event 1
    Event 2

如上所示,父对象不一定总是有一个子集合。

现在问题来了:我的要求是我想保存已添加到集合中的数据。但是,在保存 EF 时,首先保存具有子集合的项目,因此在保存时会修改顺序。因此,在数据库中,第 2 轮首先保存,然后其他随机保存。

有什么方法可以强制 EF 按照我构建的顺序保存 Rounds 集合?它应始终从第 1 轮开始保存,并应以保存第 4 轮结束。

多谢你们 : )

4

1 回答 1

4

数据库或 EF 都不保证排序。同样,如果您查询数据库,则不必按预期顺序获取元素。如果你想要准确的顺序,你必须添加额外的列来保持记录的排序值,并OrderBy在检索数据时使用扩展方法。

执行的操作顺序SaveChanges完全由 EF 控制。你不能改变它。

于 2012-06-07T07:33:41.017 回答