C# 使用数据库并部署应用程序

C# 使用数据库并部署应用程序,c#,wpf,database,deployment,C#,Wpf,Database,Deployment,我有一个WPF应用程序,它将大量信息存储在XML文件中,当用户使用该应用程序时,他们会向XML文件添加更多信息。它基本上使用XML文件作为数据库。由于在程序的生命周期中,XML文件变得相当大,我一直在考虑将数据放到网站上,因此我一直在研究如何将所有信息移动到SQL数据库中 我在web应用程序(PHP、Ruby和ASP.NET)中使用过SQL数据库,但从未在桌面应用程序中使用过。理想情况下,我希望能够将所有信息保存在一个数据库文件中,并将其与应用程序一起分发,而无需用户连接到远程数据库(因此,他们

我有一个WPF应用程序,它将大量信息存储在XML文件中,当用户使用该应用程序时,他们会向XML文件添加更多信息。它基本上使用XML文件作为数据库。由于在程序的生命周期中,XML文件变得相当大,我一直在考虑将数据放到网站上,因此我一直在研究如何将所有信息移动到SQL数据库中

我在web应用程序(PHP、Ruby和ASP.NET)中使用过SQL数据库,但从未在桌面应用程序中使用过。理想情况下,我希望能够将所有信息保存在一个数据库文件中,并将其与应用程序一起分发,而无需用户连接到远程数据库(因此,他们不需要互联网连接——尽管最终如果可以将本地文件的版本与某个在线文件的版本进行比较并在必要时进行更新会很好)并且不需要在他们的计算机上安装本地数据库服务器。这可能吗

我还希望将LINQ与任何新的数据库解决方案结合使用,这样切换到数据库不会强制进行很多更改(我使用LINQ读取XML)


我确信这个问题已经被问到了,而且已经有一些关于这个主题的好教程,但我就是找不到它们。

SQLite是一个很好的嵌入式数据库,您可以随应用程序一起发布。我只做了一些原型设计,所以我个人不能100%肯定它会满足您的需求但从我所读到的,以及我很少反对它的文章来看,它似乎适合这份工作


如果您知道对象将如何组合在一起,您可以对它们进行序列化/反序列化,将它们作为一组对象存储在磁盘上(当然,这取决于它们的大小)。我发现它是存储一组互连类的一个非常简单、优雅的解决方案。每个应该可以保存的类,所有数据,都可以使用此方法序列化,然后根据需要还原

是指向它的.NET链接


是我之前问过的一个问题,得到了好几个回答。

我想这应该是一个全新的问题,可能很傻,但是ADO.NET和LINQ是如何结合在一起的呢?我的印象是LINQ是一个更新的数据库访问层,旨在取代ADO.NET,或者LINQ与ADO.NET兼容吗?谢谢,谢谢你的建议Lite!你可以使用Linq-To-Sql或Linq-To-Entities。我在最近的项目中使用了带有实体框架的SQLite,它工作得非常出色。对于本地桌面应用程序的需求来说,它绝对很棒。没有db服务器安装,没有任何麻烦。我甚至运行了一些内部测试,使用大约300K相同的行,SQLite的性能优于其他应用程序在某些查询中,SQL Server 2008 Express的速度提高了2.5倍-3倍。