1

サンプルでは、​​この接続文字列を使用しています:

<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);

そして、私のデータベースでは、この本当に奇妙な新しいデータベースを取得します: 2 つのテーブルdbo.EdmMetadatadbo.Picturesを持つ MyAppNamespace.Models.PicturesCatalog

テーブルは問題ありませんが、それらのテーブルを使用して (接続文字列のように) PicturesDatabaseという名前の新しいデータベースを作成しないのはなぜですか?

このテーブルを数回削除しようとしましたが、PicturesDatabase を作成して使用しようとしましたが、それでもこの MyAppNamespace.Models.PicturesCatalog が生成されます。何が問題なのですか?どうすれば修正できますか?

4

1 に答える 1

5

System.Data.Entity.Infrastructure.SqlConnectionFactoryこのように使用するためのものではありません。この接続ファクトリには、すべてではなく、ユーザー名、パスワード、サーバーなど、最終的な接続文字列の 一部をオーバーライドできるコンストラクターが含まれています。

たとえば、次のようにデータベース サーバーを変更できます。

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>
于 2010-11-25T23:15:36.327 に答える