2015-07-01 20 views
6

MVC4 uygulamasında EF model derlemem referansım var. Her şey iyi çalışıyordu. Birdenbire bir hata mesajı almaya başladım.DbConfiguration örneği bulundu.

The default DbConfiguration instance was used by the Entity Framework before the 'EFConfiguration' type was discovered. An instance of 'EFConfiguration' must be set at application start before using any Entity Framework features or must be registered in the application's config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information. 

EF 6 kullanıyorum. Herhangi bir fikrin nedeni ne olabilir? Ben veritabanı ve onun güncellenmiş ve EF dll ile senkronize çift kontrol edin.

Güncelleme: Ben Bağlam nesne

mEntities context = new Entities(); 

Teşekkür

örneğini çalışıyorum bu hatayı alıyorum
+0

nereye Bağlam örneğini çalışıyoruz (bu durumda web.config) uzatmak veya yapılandırma dosyasında aşağıdaki gibi EntityFramework düğüm eklemek gerekir? – Zippy

+0

MVC4 web sitemde. DbContext sınıf dahil olmak üzere tüm EntityFramework ilgili eserler sahip bir montaj EF.DLL var ve MVC4 webapplication benim bu derleme atıfta ediyorum. – user2243747

+0

bağlam bildirimi ve buna Global.asax adlı çağrıyı ekleyebilir misiniz? – Zippy

cevap

-1

Mayıs sen DAL konum bu örnekteki gibi bir sınıf var çünkü senin sorunun

Bu durumda
public class EfConfiguration : DbConfiguration 

Global.asax

EF Bağlamını kullanmadan önce bu initialize gerekir

Rgds

+5

ne demek istiyorsun - "bunu başlat"? Örnekler her zaman bekler ... – barrypicker

+0

Bu, EntityFramework kullanarak birden fazla projeye sahip olduğunuz için olabilir, bu nedenle varlık çerçevesinin, tüm dünyada örneklenen bazı iç sınıfları vardır. DbConfigurations'larınız hakkında EntityFramework'ı önceden (DBContext'inizi oluşturmadan önce) söylemeniz gerekir. Benim durumumda EF (2 MsSql, 1 Oracle) kullanarak 3 proje yaptım. Oracle, farklı bir DbConfiguration gerektirir. Bu DbConfiguration ürününü OracleDbContext'inizde kullanmanız ve uygulama satırında EF: DbConfiguration.SetConfiguration (yeni OracleDbConfiguration()); –

+2

Hata, bir microsoft sayfasına bir bağlantı vardır, biraz zaman ayırın ve cevabı dikkatlice okuyun. İyi şanslar! https://msdn.microsoft.com/en-us/data/jj680699 –

0

Sadece benzer bir hata mesajına sahip olanlar için bir çözüm bırakmak istiyorum. Vinicius Paiva'dan link olarak, farklı dll'de birden fazla dbcontex'iniz varsa, kodunuzda bir tane oluşturduysanız, DbConfiguration dosyanıza başvurmanız gerektiğini açıkça belirtir. Benim durumumda DAL projesine referans veren masmavi fonksiyonlar vardı ve azure fonksiyonlarını elde etmenin tek yolu kısmi sınıf ve kod tabanlı DbConfiguration dosyası oluşturmak.

yüzden başka edmx örneği vardı bir MVC proje üzerinde

namespace myApp.Data.Models 
{ 
    [DbConfigurationType(typeof(myDBContextConfig))] 
    partial class myDBEntities 
    { 

     public myDBEntities(string connectionString) : base(connectionString) 
     { 
     } 
    } 

     public class myDBContextConfig : DbConfiguration 
     { 
      public myDBContextConfig() 
      { 
       SetProviderServices("System.Data.EntityClient", 
       SqlProviderServices.Instance); 
       SetDefaultConnectionFactory(new SqlConnectionFactory()); 
      } 
     } 
    } 

Bu DAL kitaplığı başvuran edildi aşağıdaki kodu ile benim edmx dosya DBContext uzanan. Bu projede koştuğumda, bu istisnayı fırlatıyordu. Bunu düzeltmek için. Eğer

<entityFramework codeConfigurationType="myApp.Data.Models.myDBContextConfig , myApp.Data"> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework>