实体框架用户选择数据库目标

时间:2014-02-17 12:41:54

标签: c# sql entity-framework

所以这是我的问题。对于我的开源项目,我们必须允许用户将缓存的内容存储在文件系统上,我们目前通过将缓存序列化为json并将其存储为纯文本文件来实现。 由于我们希望在将来的版本中摆脱这种解决方案,我们现在正在寻找将缓存存储在数据库中的方法。 在我们当前的计划中,用户可以决定他想要使用哪个数据库(例如SQL Server compact,已有的数据库等)。现在我的问题是:

  1. 使用EF可以实现这样的目标吗?我可以在应用程序运行时切换数据库,还是需要重新编译应用程序以进行数据库切换?
  2. EF是最好的方法吗,还是我忽略了更好的解决方案?

1 个答案:

答案 0 :(得分:1)

Can something like this be achieved with EF? Can I switch the database while the application is running, or do I need to recompile the application for a database switch?

如果您有不同的数据库,如Oracle,MS SQL等,那么在EF中,您必须为每个数据库创建不同的模型,然后根据他们使用的数据库分发到客户端。

Would EF be the best way to do this, or am I overlooking better solutions?

完全取决于你,你可以通过简单的ado.net实现这一点。但是为了灵活性,EF代码优先和模型中的T4代码生成器为您提供了很好的选择,您的域数据,数据访问层,业务规则对于不同的数据库将是相同的。您只需修改应用程序中的连接即可。配置文件。

我希望这会对你有所帮助。