Web Api 项目和另一个数据项目都有 entity framework 只需要数据项目中的连接字符串

Web Api project with another data project both have entity framework only wanting connection string in data project

我有 2 个项目:1 Web api (ReportingApi) 2. Data (ReportingApi.Data)

Web Api 将不会连接到 class 库(数据)项目 web.config 中没有连接字符串,即我的数据项目中的连接字符串 duplicate app.config.

两者都有

<connectionStrings>
     <add name="ScriptsContext" connectionString="Data Source=SQLserverblah;Initial Catalog=blahdb;User ID=blah;Password=blah" providerName="System.Data.SqlClient" />
</connectionStrings>

数据项目DbContext

public class ScriptsContext : DbContext
{
    public DbSet<Question> Questions { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        Database.SetInitializer<ScriptsContext>(null);   
        modelBuilder.Entity<Question>().ToTable("Question", schemaName: "dbo");

    }
}

读取的唯一配置是执行项目的配置。 IE。您是 运行 Web API 网站并且使用了它的配置。

如果您希望数据项目成为黑盒,您将需要对连接字符串进行硬编码或从配置以外的来源获取它。

如果您想测试这个理论,您可以从 Data 项目中删除连接字符串并仍然启动 Web API。您需要数据项目中的连接字符串的唯一原因是,如果您使用的是 ORM,例如 Entity Framework,它允许您在 Visual Studio.

内更新生成的代码文件

希望对您有所帮助。