【发布时间】:2021-01-09 11:53:23
【问题描述】:
是否可以从控制器构造函数中获取当前主机名?
Request 和 HttpContext 对象都为 null,因此 Request.Url 不会产生任何结果。
public class HomeController : Controller
{
private readonly MyEntities _entities;
public HomeController()
{
//
var hostname = Request.Url;
if (hostname.Contains("localhost")) EFConnectionStringName="localhost";
else EFConnectionStringName="default";
_entities = new MyEntities(EFConnectionStringName);
}
...
我在这里要解决的更大的问题是根据主机名为实体框架选择一个连接字符串。想法?
【问题讨论】:
-
在您的代码中显示“localhost”我怀疑您想在调试时使用单独的连接?为什么不直接使用 web.debug.config 文件?见:blogs.msdn.com/b/webdev/archive/2009/05/04/…
-
对于不同的环境,还需要包含更多的主机名,总共可能有 6 个。是的,我知道这不是最佳做法,但我已做出决定,我正在执行命令。
标签: asp.net-mvc entity-framework