我创建了一个项目调用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>
答案 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>