假设您有 1 个 Web 应用程序,并且为 50 个州中的每一个州运行相同的代码库。由于存储数据的合法性,每个州都必须拥有自己独立的数据库,即使它们除了名称和实际数据之外都相同。将应用程序保存在单个代码库中。您在 Web 服务器上有 50 个应用程序实例,每个实例的 web.config 中都有不同的连接字符串。
然后,您想首先将 EF 5 代码与 migraitons 一起使用。我希望 EF 5 使用 1 个指定的连接字符串。到现有的数据库。我不想为模型中的每个对象都有一个连接字符串。喜欢...
<add name="ProductsContext" connectionString=".....
<add name="UsersContext" connectionString=".....
<add name="LocationsContext" connectionString=".....
我想要 1 个连接字符串,例如
<add name="DefaultConnection" connectionString=".....
我该怎么做呢?
此外,如果我的模型中的每个对象都需要成为 dbcontext 的一部分,那么最好将它们放在单独的上下文中,如教程显示或可以/应该它们都在同一个上下文中,这将允许我只拥有一个“默认上下文”。你应该有多少上下文?
如果我让 EF 使用连接工厂并创建 3 个上下文,它会尝试创建 3 个数据库。
注意我不能以编程方式指定连接,因为应用程序的每个副本都连接到不同命名的数据库。
我真的很困惑 EF 想要我模型中的每个对象都有一个数据库。此外,如果他们有一种方法可以让 1 个代码库访问 50 个单独的数据库,并且知道在启动时要进入哪个数据库,而无需任何用户交互,那也很有帮助。当前,在需要更新网络服务器上的代码时,使用具有不同 web 配置文件的相同代码的单独托管实例是一个需要维护的婊子。
建议?解决方案?最佳实践?
谢谢!