c# - 如何根据 MVC 网站的子域更改 EF 连接字符串?

标签 c# asp.net-mvc entity-framework iis-7 sql-server-2012

我有一个在 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/

相关文章:

C# 将接口(interface)应用到窗体类

c# - 覆盖 .ToString()

c# - ASP.NET 中的 xslt

asp.net-mvc - ASP.NET MVC : having one model for all views

c# - EF 中的 db.SaveChanges() 参数超出范围

c# - 将 Expression<Func<IBar, T>> 转换为 Expression<Func<Bar, T>>

asp.net - JavaScript 到 StringBuilder

c# - dotnet ef 数据库更新无法加载文件或程序集“Microsoft.Extensions.FileProviders.Abstractions”

entity-framework - Entity Framework 代码优先,自定义,多对多关系中的附加字段

c# - 使用 EF 将数据插入 SQL 数据库