EF CTP 4数据库名称配置

Naz*_*gol 1 ado.net entity-framework ef-code-first

对于示例我正在使用此连接字符串:

<connectionStrings>    
<add name="PicturesDatabase" 
         connectionString=" Server=.;
                            Database=SomeprojectDatabase;
                            Trusted_Connection=True;"
         providerName="System.Data.SqlClient"/>
<../>
Run Code Online (Sandbox Code Playgroud)

然后我在Application_Start()中使用它:

Database.DefaultConnectionFactory =
    new SqlConnectionFactory(ConfigurationManager.
        ConnectionStrings["PicturesDatabase"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)

在我的数据库中,我得到了这个非常奇怪的新数据库: MyAppNamespace.Models.PicturesCatalog, 带有两个表dbo.EdmMetadatadbo.Pictures

表很好,但为什么不用这些表创建一个名为PicturesDatabase的新数据库(如连接字符串中)?

我试过几次删除这个表,我尝试创建PicturesDatabase并使用它...但它仍然生成这个MyAppNamespace.Models.PicturesCatalog.它有什么问题?我该如何解决?

Mor*_*avi 5

System.Data.Entity.Infrastructure.SqlConnectionFactory并不意味着以这种方式使用.该连接工厂包括一个构造函数,使我们可以覆盖最终连接刺痛,如用户名,密码和服务器,而不是整个事情.

例如,我们可以像这样更改数据库服务器:

Database.DefaultConnectionFactory = 
        new SqlConnectionFactory("Server=MyDatabaseServer"); 
Run Code Online (Sandbox Code Playgroud)

您可以通过在app.config中提供 DbContext名称匹配的连接字符串来轻松完成此处尝试的操作- 我假设它是PicturesCatalog:

<connectionStrings>
   <add name="PicturesCatalog" connectionString="data source=.; 
        Initial Catalog=PicturesDatabase; Trusted_Connection=True;"
        providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)