sql - 代码优先 Entity Framework 在初始化时不拾取 web.config 连接字符串

标签 sql entity-framework-4 ef-code-first

我一直在使用代码优先 Entity Framework 。我在 web.config 中定义了一个连接,其名称与我的 DbContext 的类名匹配(在本例中为“MyDbContext”)。

当数据库存在时,EF 使用此连接不会出现任何问题。

但是,如果我删除数据库(以强制 EF 重新创建它),EF 则会在本地 Sql Express 服务器上创建数据库。

如果我在 DbContext 类构造函数中指定完整的连接字符串,例如

    public class ReykerSCPContext : DbContext
{
public ReykerSCPContext() : 
    base("Server=tcp:MyDBSErver.database.windows.net,1433;Database=MyDB;User ID=#######;Password=#######;Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True;PersistSecurityInfo=True;") { }
}

然后数据库就在选择的服务器上正确创建了。太棒了!

谁能告诉我这是否是正确的行为,因为我正在绞尽脑汁。我希望这一切都可以从 web.config 开始工作,所以我不需要重建并记住更改代码等中的设置。

最佳答案

这应该可以做到:

public class EFDbContext : DbContext {
    public EFDbContext() : base("EFDbContext") {

    }

    public DbSet<Product> Products { get; set; }
}

您应该在 web.config 中拥有上下文类名称的连接字符串,这样就可以了。 web.config 应该位于根目录中。

<connectionStrings>
    <add name="EFDbContext" connectionString="Data Source = .; Initial Catalog = ITSDB; Integrated Security = true" providerName="System.Data.SqlClient"/>
</connectionStrings>

关于sql - 代码优先 Entity Framework 在初始化时不拾取 web.config 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124101/

相关文章:

php - 返回 MySQL 中特定日期的行

mysql - 意想不到的角色。 ( "\"附近

c# - 具有多个引用的 Entity Framework LoadProperty

c# - 删除不带 .Include 的选择 N+1

c# - 循环关系的 Entity Framework 外键

SQL Server 替换不在范围内的字符

sql - 必须声明标量

c# - Entity Framework 错误 : An object with a null EntityKey value cannot be attached to an object context

c# - 使用 Entity Framework Code First 映射同一类的子项

c# - 添加架构 EF Core 表属性