看起来Code First DbContext在编译期间确实使用了给定的ConnectionString?我甚至不知道这是如何可能的,但对我来说似乎是这样的。如果我关闭本地SQL Server,我会收到错误提示“无法获取DbContext类型的MetadataWorkspace...”。打开SQL Server后,一切都可以正常编译。
这是我的上下文的一部分(我正在使用现有的数据库,是的,我知道,实际上并不是Code First)
public class MyContext : DbContext
{
public MyContext() : base("MY_DYNAMIC_CONNECTIONSTRING")
{
Database.SetInitializer<MyContext>(null);
}
...
如果真的是这样,那么就存在一个巨大的问题。我该如何防止它这样做呢?如果我使用的是不同的构建机器,连接字符串无法正常工作怎么办?或者是我做错了什么?请问有什么建议吗?