使用 XML 作为小型 C# 应用程序的数据持久性的好方法是什么? [关闭]

2023-11-21

我需要一些关于使用 XML 作为小型 C# 应用程序的数据持久性的好方法的意见。这是一个独立的应用程序,用户不共享相同的数据持久性,因此,文件访问是独占的。这就是我首先想到 XML 的原因。

我知道我的设计模式,所以如果我编写常用的层,我可以隔离持久性,然后在需要时更改它。话又说回来,这是一个小应用程序,所以我需要快速编写它。

我应该只使用 Linq to XML 并结束它吗?如果是这样,如果我决定用嵌入式数据库替换 XML,我的重写工作会是什么? Linq 写入 XML 文件的性能如何?

但如果我不选择 Linq,你们有什么建议?

Update

根据我收到的评论,我可能需要进一步说明。这是一款供教师使用的成绩单应用程序。这些是我的主要实体:

  • Student
  • Course
  • 老师(应该只有一个,但我会存储它,因为将来可能集成)
  • 成绩(学生在每门课程中可以有多个成绩)

现在有一些问题:

  • 在幕后,每个实体应该有一个 XML 文件吗?
  • 在幕后,我应该使用 Linq to XML 吗?还有什么需要考虑的吗?

以及一些评论

  • 我知道我应该使用“持久性类实例”进行交互IEnumerable<MyEntity>,在输入和输出上。这给了我灵活性。
  • 尽管我真的很愿意接受建议,但我现在真的不想考虑嵌入数据库。这个小应用程序是一个令人兴奋的机会,可以开始工作并在生产中尝试新事物(不仅仅是测试),而且风险很小。

我建议你:

  • 定义一个模型(一个类)代表需要存储的数据(可以是分层的)
  • Use 序列化如果需要,可以序列化或反序列化为 XML 或二进制甚至 JSON。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 XML 作为小型 C# 应用程序的数据持久性的好方法是什么? [关闭] 的相关文章

  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 在 Delphi 中使用 XML(将特定数据返回到变量)

    过去几天我一直在尝试使用 Delphi 2010 和 MSXML 我是一个极端的新手 需要一点指导 var MemoryStream TMemoryStream XMLPath String sName String XMLDoc vari
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 应用程序在后台时 iPhone 手电筒不工作

    您好 我正在使用基于位置的应用程序 并且想要在后台使用 iPhone 相机手电筒 不幸的是 手电筒仅在前台工作 即使代码正在执行 它也会自动关闭后台的闪光灯 我使用的代码仅在前台运行 import
  • 创建交互式弹出对话框

    我想知道是否可以使用shiny 和shinyBS 创建一个交互式弹出对话框 例如 我有一个字符串 我想更改它 并且在执行之前会出现一个对话框 询问我是否真的要更改它 如果我说 是 它就会执行 否则它会放弃更改 这是我的尝试 但我发现了两个问
  • MongoError:拓扑已关闭,请连接

    我是一名前端开发人员 试图在新的 Next 项目中拓展自己的视野 第一次学习 Node Mongo 和 GraphQL 的服务器端 Apollo 对我来说是最简单的入门方式 因为我已经在之前的项目中使用过客户端 Apollo 我一直在关注官
  • 为什么我的 C 程序中出现 ws2_32.dll 的链接器错误?

    我正在 Visual Studio 2010 中编写我的程序 我无法链接名为ws2 32 dll和我的项目 谁能告诉我该怎么做 通常您不会链接到 ws2 32 dlldirectly而是 WS2 32 Lib 您可以在 Windows SD
  • StringBuilder 和 StringBuffer 的区别

    之间的主要区别是什么StringBuffer and StringBuilder 在决定其中任何一项时是否存在任何性能问题 StringBuffer是同步的 StringBuilder is not
  • Android xml布局中的视图限制是多少

    任何人都知道在 android 布局 XML 中 可以嵌入到 XML 中的最大视图限制是多少 有限制吗 严格来说 限制 是80 当布局中有太多视图时 Lint 会报告以下内容 AndroidLintTooManyViews 描述 布局有太多
  • 从当前光标位置创建范围 Word 2010 VBA

    我有一个 docm带有用户表单的文档 在用户表单上 我有一个按钮 需要在文档中最后一个已知的光标位置插入一些内容 一些文本 用于启动 为此 我想创建一个范围 我怎样才能获得这个范围的起始位置 Selection是文档中的当前位置 Selec
  • 如何将 UIScrollView 嵌套在 UIScrollView 中,以便用户可以滚动内部 UIScrollView?

    我还没有尝试过 但我假设一旦我知道用户想要在子滚动视图中滚动 我就必须禁用父滚动视图的滚动 对吧 两个滚动视图都是水平滚动的 如何暂时禁用父级的滚动检测 或者还有其他办法吗 UIScrollView 有一个属性叫做scrollEnabled
  • 在 Bootstrap 4 的较小屏幕上隐藏一列[重复]

    这个问题在这里已经有答案了 这是 Bootstrap 4 总是让我感到困惑的一个领域 假设你有这样的布局 div class container fluid div class row div class col sm 3 col sm 3
  • 不使用递归如何抛出堆栈溢出异常?

    不使用递归如何抛出堆栈溢出异常 由于没有其他人提到过 throw new System StackOverflowException 您可以在测试或进行故障注入时执行此操作
  • VS 插件将光标下的标识符的完整类型名称复制到剪贴板中[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有一个 Visual Studio 插件可以将光标下的标识符的完整类型名称复制到剪贴板中 请不要将我链接到 VS 2010 复制类 接口的完整类
  • 如何从一个具有依赖性的批处理文件启动多个批处理文件?

    我想运行一个批处理文件 启动其他批处理文件 我看了这里发布的类似问题 如何在一个 BAT 文件中运行多个 BAT 文件 我按照这个例子 特别是最后一个建议 并且它起作用了 部分 它确实启动了我需要的批处理文件 但是 为了使应用程序正常运行
  • 为什么 JavaFX 中没有 ObservableQueue?

    为什么JavaFX中没有ObservableQueue 如果我们查看 FXCollections 的 Java 9 文档 只是为了看看与 8 相比是否有任何更改 我们会看到用于创建 Observable 集 列表和映射的静态辅助方法 还有一
  • SVG 矩形忽略高度?

    这里有一个工作演示的一个矩形 我想将 height 属性移至 css好吧 它不起作用 让我一片空白 它发生在 Firefox 和 Chrome 中 它有不同的名字吗 我不明白为什么我不能使用 css 文件 填充颜 色有效 工作示例 css
  • pip install - 连接被同行重置

    当我尝试使用 pip 安装 lxml 时 出现异常 连接被对等方重置 Downloading unpacking lxml Downloading lxml 3 0 1 tar gz 3 2Mb 643Kb downloaded Excep
  • Vue 3:如何访问组件函数中的设置变量

    考虑以下使用 Vue 3 中的组合 API 的简单示例 我试图拥有一个实例test在我的组件的功能中可用
  • Linq to Sql、Linq、类型化数据集、ADO.NET 之间的区别

    我想知道这个问题有一段时间了 现在好像有很多方法不知道什么时候用什么 或者是否有必要学习它们 就像我不知道他们是否基本上做所有相同的事情 只是基本上坚持其中一个直到你掌握它然后也许看看其他的 因此 当我参加 ASP NET 课程时 它是我计
  • 使用C读取linux内核版本?

    我正在使用 Ubuntu 我想阅读其内核版本 我在 proc 中发现了一个名为version的文件 记录了当前内核的版本 如果我不想读取文件 是否有其他方法 例如 C 中的内置函数 可以读取 C 中的版本 Thanks 您可以使用uname
  • Windows 窗体和 ShowDialog 问题

    我有一个无国界Windows 窗体应用 The main window creates other forms simple dialogs where I can click yes or no with ShowDialog Every
  • 使用 XML 作为小型 C# 应用程序的数据持久性的好方法是什么? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我需要一些关于使用 XML 作为小型 C 应用程序的数据持久性的好方法的意见 这是一个独立的应用程序 用户不共享相同的数据持久性 因此 文件访问是独占的 这就是我首先想到 XML 的原因