2010-11-25 30 views
1

Pour exemple j'utilise cette chaîne de connexion:EF CTP 4 Configuration du nom de base de données

<connectionStrings>  
<add name="PicturesDatabase" 
     connectionString=" Server=.; 
          Database=SomeprojectDatabase; 
          Trusted_Connection=True;" 
     providerName="System.Data.SqlClient"/> 
<../> 

Et puis-je utiliser dans Application_Start():

Database.DefaultConnectionFactory = 
    new SqlConnectionFactory(ConfigurationManager. 
     ConnectionStrings["PicturesDatabase"].ConnectionString); 

Et dans ma base de données que je reçois ce nouvelle base de données vraiment étrange: MyAppNamespace.Models.PicturesCatalog avec deux tables dbo.EdmMetadata et dbo. Photos

Les tables sont très bien, mais pourquoi ne pas créer une nouvelle base de données nommée PicturesDatabase (comme dans la chaîne de connexion) avec ces tables?

J'ai essayé d'abandonner cette table plusieurs fois, j'ai essayé de créer PicturesDatabase et de l'utiliser ... mais il génère toujours ce MyAppNamespace.Models.PicturesCatalog. Quel est le problème avec cela? Et comment puis-je le réparer?

Répondre

5

System.Data.Entity.Infrastructure.SqlConnectionFactory n'est pas destiné à être utilisé de cette manière. Cette fabrique de connexions inclut un constructeur qui nous permet de remplacer pièces de la connexion finale, comme nom d'utilisateur, mot de passe et serveur, et pas tout.

Par exemple, nous pouvons changer la base de données du serveur comme ceci:

Database.DefaultConnectionFactory = 
     new SqlConnectionFactory("Server=MyDatabaseServer"); 

Qu'est-ce que vous essayez de faire ici peut être facilement accompli en fournissant une chaîne de connexion dans votre app.config que matchs le nom de votre DbContext - je suppose qu'il est PicturesCatalog:

<connectionStrings> 
    <add name="PicturesCatalog" connectionString="data source=.; 
     Initial Catalog=PicturesDatabase; Trusted_Connection=True;" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 
+0

Oui, il fonctionne exactement comme je le veux. Merci beaucoup! –

+0

Pas de problème, content que ça ait aidé :) –