对于示例我正在使用此连接字符串:
<connectionStrings>
<add name="PicturesDatabase"
connectionString=" Server=.;
Database=SomeprojectDatabase;
Trusted_Connection=True;"
providerName="System.Data.SqlClient"/>
<../>
然后我在Application_Start()中使用它:
Database.DefaultConnectionFactory =
new SqlConnectionFactory(ConfigurationManager.
ConnectionStrings["PicturesDatabase"].ConnectionString);
在我的数据库中,我得到了这个非常奇怪的新数据库: 的 MyAppNamespace.Models.PicturesCatalog 有两个表 dbo.EdmMetadata 和 dbo.Pictures
表很好,但为什么不用这些表创建一个名为 PicturesDatabase 的新数据库(如连接字符串中)?
我试过几次删除这个表,我尝试创建PicturesDatabase并使用它......但它仍然生成了这个MyAppNamespace.Models.PicturesCatalog。它有什么问题?我该如何解决?
答案 0 :(得分:5)
System.Data.Entity.Infrastructure.SqlConnectionFactory
并不意味着以这种方式使用。此连接工厂包含一个构造函数,允许我们覆盖最终连接sting的件,例如用户名,密码和服务器,而不是整个事物。
例如,我们可以像这样更改数据库服务器:
Database.DefaultConnectionFactory =
new SqlConnectionFactory("Server=MyDatabaseServer");
您可以通过在app.config中提供匹配 DbContext名称的连接字符串来轻松完成此处尝试的操作 - 我假设它是 PicturesCatalog :
<connectionStrings>
<add name="PicturesCatalog" connectionString="data source=.;
Initial Catalog=PicturesDatabase; Trusted_Connection=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>