我有一个在 IIS7 下运行的 EF5 ASP.NET MVC 3 (Razor) 网站。现在我希望能够根据 URL 的子域将连接字符串更改为 MSSQL 数据库,例如foo.mydomain.com
应该连接到我的“Foo”数据库,bar.mydomain.com
应该连接到“Bar”数据库。
显然,DNS 记录已设置为指向同一个网站。
实现此目标的最有效方法是什么?
最佳答案
你为什么不开始将你自己的 SqlConnection
传递给你的 YourDbContext
?
var partialConString = ConfigurationManager.ConnectionStrings["DBConnectionStringName"].ConnectionString;
var connection = new SqlConnection("Initial Catalog=" + Request.Url.Host + ";" + partialConString);
var context = new MyDbContext(connection, true);
您还可以在 DBContext 中更改数据库:
context.Database.Connection.ChangeDatabase("newDbname");
关于c# - 如何根据 MVC 网站的子域更改 EF 连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15200220/