所以我正在做的是使用 xml 文档来确定数据库更新需要运行某些 SQL 脚本的顺序。
XML 遵循这种格式
<ScriptRules>
<Database databaseName = “string”>
<Folder folderPath = “string” executeAllFiles = boolean>
<file order=”first or last”>“Filename”</file>
</Folder>
</Database>
</ScriptRules>
因此,在数据库中执行所有 sql
文件的类会在更改其连接时查看此文件,并根据配置文件告诉它执行的操作从文件夹中执行文件。
现在我的问题是:
假设我有一个包含 4 个 Database
节点的文档,每个节点都有 n
个 Folder
节点,里面有一个里面的各种文件
节点。
如果在 For Each
中循环遍历我检索到 XElement
中的 Database
节点,我是否合乎逻辑?使用 database.Elements("Database")
它们将按照它们在 xml 文件中出现的顺序被提取? (文件节点也一样)
据我所知,情况确实如此,但我只是想在开始将其用于生产数据库之前进行验证。
最佳答案
是的,Elements
按文档顺序返回元素。来自 the docs ,在“返回值”中:
An
IEnumerable<T>
ofXElement
containing the children of theXContainer
that have a matchingXName
, in document order.
关于.net - LINQ 是否保证从 XDocument 读取的项目顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3291010/