Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储数据时的最佳做法_C#_Database - Fatal编程技术网

C# 存储数据时的最佳做法

C# 存储数据时的最佳做法,c#,database,C#,Database,我想在c#做一个申请,在那里我可以保存我所有的笔记和私人指南。 GUI如下所示: --------------------------------- | Filter | ListView | ------------ | | TreeView | | | | | | | | |

我想在c#做一个申请,在那里我可以保存我所有的笔记和私人指南。 GUI如下所示:

---------------------------------
| Filter   |     ListView       |
------------                    |
| TreeView |                    |
|          |                    |
|          |                    |
|          |                    |
---------------------------------
我希望所有的注释都能在列表视图中看到,当我键入过滤器时,我希望列表视图删除那些我不感兴趣的注释。 TreeView将显示我添加到笔记中的所有“标签”,通过选择一个或多个标签,它还将过滤掉我感兴趣的笔记

所以我得到了这个类,它得到了变量
标签
,它是我为这个注释输入的所有关键字的字符串,还有
注释
,它是注释本身的字符串

那么,最好的方法是什么呢? 如果每次我想更新ListView时都保留所有笔记并执行查询,那么我应该执行sql吗? 或者我应该在应用程序启动时关闭并读取到内存时进行某种序列化吗?
做这件事的最好方法是什么?我也希望它能很好地执行,即使我收到了大量的笔记

你在这里有很多选择,每一个都有自己的优点和缺点

1。平面文件

当然,您可以将这些信息写入标准平面文件,并在应用程序启动时将其读入内存,这很容易读取和写入,但是您需要将它们全部加载到内存中,以便对数据进行排序和查询。如果你有很多笔记,这不是很好

2。实体框架

实体框架将是我个人的首选,因为您可以根据需要从数据库中查询数据,它还将使您提到的树视图等功能更易于实现。对于这个场景,我可能会首先使用代码创建一个本地数据库(SQLCE),因为这意味着您的应用程序不需要完整的SQL Server实例

实体框架的另一个很好的特性是,如果数据库不存在,它将自动为您创建数据库,并且允许您只使用表示数据库中记录的C#poco类

3。NOSQL数据库

这可能是你的另一个选择,有很多NOSQL数据库可能非常适合你的需要,我必须承认我对它们几乎没有经验,但它们肯定能胜任这项工作。我会让有更多经验的人来指导你