使用XML存储数据,我如何使用Entity Framework?

时间:2010-11-10 22:24:06

标签: c# xml database entity-framework local-storage

我正在构建一个程序,它有两个选项:离线和在线存储选项。在线的东西不是问题,从来没有,也可能永远不会。为了使事情变得更简单,我使用实体框架和我的在线数据库来完成我的所有CRUD。

离线选项是我遇到问题的地方。我尝试添加本地SQL安装作为安装包的一部分,但它在某些计算机上失败,具体取决于我使用的SQL版本,有些人根本无法安装它...老实说,我不是想要通过这个只是为了让人们安装程序。我想做两件事:

1)存储数据。我目前认为Linq to XML是我最好的选择,没有额外的安装,但有没有办法将实体映射到程序中的类来处理XML CRUD?

2)同步数据。我想我会使用Sync Framework,但同样,在后台没有正常的数据库,这有点痛苦。

非常欢迎任何帮助/建议/评论,如果有更简单的方法可以做到这一切,请告诉我。

1 个答案:

答案 0 :(得分:2)

我很高兴听到你为同步逻辑找到了一些东西。这有点让我夜不能寐。在这样的情况下,GUID是你的朋友。

我从未尝试使用针对不同数据源的1 ObjectContext。也许你可以使用OLEDB作为你的提供者。我会走那条路。但我怀疑你会发现它比它的价值更麻烦。

我建议关注Repository Pattern。然后,您只需实施XMLRepositorySQLRepository即可。这可能意味着一些边界双重编码。但针对XML与数据库的查询有其自身的顾虑。因此,根据您的具体情况,我认为违反DRY原则可能是合理的。

此外,我承认这是完全主观的,让我觉得实体框架对于可以轻松地保存在XML中的关系模型来说太过分了。如果您考虑使用LINQ-to-SQL,我只是好奇。如果是这样,是什么让你相信EF的方式呢?