我的连接字符串在哪里?

时间:2014-12-26 21:43:39

标签: asp.net-mvc entity-framework model-view-controller

我创建了一个项目调用Repository.EF来处理n-tire解决方案中的数据访问。我已经将EF添加到Repository.EF项目中,在那里我拥有了所有的POCO。然后我在这个项目中创建了一个DbContext类。

namespace LearningSpike.Repositories.EF
{
class GlassContractDbContext:DbContext
    {
    public GlassContractDbContext() : base("GlassContractContext")
    {
    }

    public DbSet<MetalStock> MetalStock { get; set; }


    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Configurations.Add(new MetalStockConfiguration());
    } 
}

然后去了包管理器控制台并做了

Enable-Migrations 

然后设置

 AutomaticMigrationsEnabled = true;

然后

Update-Database

一切都很好。但问题是,我不知道连接字符串在哪里。似乎在该特定项目中没有connectionString。我知道如果我有一个MVC4 / 5模板,web.config中会有一个connectionString。如何找到连接字符串? 我现在如何配置?例如,我记得在MVC5应用程序中使用connectionString执行此操作

 MultipleActiveResultSets=true

我现在该怎么办?

谢谢! 干杯!

PS

此外,我在Repository.EF项目的App.config中有以下代码

 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
 <configSections>

 <section name="entityFramework"
 type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, 
 EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  
 requirePermission="false" />
 <!-- For more information on Entity Framework configuration, visit 
 http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
 <entityFramework>
 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory,
 EntityFramework" />
<providers>
  <provider invariantName="System.Data.SqlClient" 
    type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>

</entityFramework>

1 个答案:

答案 0 :(得分:1)

运行包管理器控制台时,它将默认使用启动项目(除非您在命令中指定-project参数或使用控制台管理器中的下拉菜单)。从那里它将在该项目的配置文件中查找您的连接字符串。如果这是一个Web项目,那将在web.config中。

如果您尚未将自己的连接字符串添加到该项目,EF将能够使用自己的项目名称派生的连接字符串,并创建一个mdf文件,它在运行时即时附加。

如果你想添加一个连接字符串(你可以这样做是你的任何配置文件 - 但是你想把它添加到你的数据层项目中的app.config中)你可以在你的下面添加这个配置部分:

<connectionStrings>
<add name="MyDatabase"
     providerName="System.Data.SqlClient"
     connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"/>
</connectionStrings>