2013-03-29 6 views
6

. Bir soru hep oldu ama kesin bir yanıt bulmak asla - benim bağlantı dizesi adı EF düzgün çalışması için benim DBContext adıyla eşleşmesi zorunda mu için?bağlantı dizesi adı ve Ben (benim ana proje için v5 üzerine) bir süredir Varlık Framework kullanıyorum Varlık Çerçeve

O (ve ben farklı bir şey yapmadım) Öyle görünüyor, ama ben EF çalışması için benim Web.config bir "sihirli dize" sağlamak zorunda tercih ediyorum. Bu ismi olarak DefaultConnection tutmak için, bence, daha iyi olurdu ve EF başka yoldan bağlanır.

<entityFramework> 
    <contexts> 
     <context type="MyProject.Path.To.MyContext, MyProject.Path.To, Version=1.0.0.0, Culture=neutral"> 
     <databaseInitializer type="MyProject.Path.To.MyInitializer, MyProject" /> 
     </context> 
    </contexts> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 

Herhangi bir fikir mutluluk duyacağız ...

<connectionStrings> 
    <add name="MyContext" connectionString="Data Source=|DataDirectory|MyDatabase.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
</connectionStrings> 

... ve ... aşağılarda: Burada

benim Web.config gelen referanslar (bazı isimler değişti) 'dir .

+0

, sizin 'DbContext' sınıfla aynı adlı bağlantı dizesini kullanmak. – jrummell

cevap

11

bir soru hep oldu ama kesin cevap bulmak asla - benim bağlantı dizesi adı EF düzgün çalışması için benim DBContext arasında adıyla eşleşmesi zorunda? Sen DBContext için temel kurucu bir bağlantı dizesi adı geçebilir

sayılı, yani

public class MyDbContext : DbContext 
{ 
    public MyDbContext() 
     : base("MyConnectionStringName") 
    { 

    } 
} 

sen bağlantısını kendiniz oluşturmak isterseniz bir DbConnection argüman alır DbContext üzerinde bir yapıcı da var. Son olarak, IDbConnectionFactory kendi uygulamanızı sağlayabilirsiniz ve app.config'da belirtilen varsayılan LocalDbConnectionFactory yerine kullanabilirsiniz. Sen config değiştirmek veya aşağıdaki gibi çalışma zamanında ayarlayın:

varsayılan kongresi

Database.DefaultConnectionFactory = new MyCustomConnectionFactory();