2016-10-24 21 views
5

Yardıma ihtiyacım var! Başlığın önemli olduğundan emin değilim, bu yüzden daha iyi açıklamaya çalışacağım.Entity Framework - Oracle Sağlayıcı ile dinamik bağlantı dizgisi kullanın

ASP.NET web api sitesine http isteklerini kullanan açısal bir web sitesinde çalışıyorum. Veritabanım bir Oracle biridir. Ben

<add name="UserConnection" connectionString="DATA SOURCE=ip:port/name;PASSWORD=pwd;PERSIST SECURITY INFO=True;USER ID=usr" 
    providerName="Oracle.ManagedDataAccess.Client" /> 

(Ben ip ile gerçek infos yerini (benim web.config'de) bir kodlanmış bağlantı dizesi ile Entity Framework (Veritabanı İlk) kullanır; port; ad; pwd; usr beri Yapamam Bütün bunlar çalışıyor, ama şimdi benim takımım dinamik KULLANICI ID ve

gol ile benim açısal uygulamasında giriş yapmaktır PAROLASIZ bu Oracle bağlantı dizesini sahip olabilmek istiyor

) onlara göstermek bir kullanıcının kimlik bilgileri ve O'ya bağlanma Aynı kimlik bilgileri ile DB DB. Bu yüzden bu sabit kodlu bağlantı dizesini artık kullanamıyorum.) (Baz birinci parametre: Bir bağlantı dizesi vererek DBContext sınıfını:

başka benim db için yapıcı oluşturmaya çalıştık (yarattığı zaman, kullanıcılar db kullanıcılar tablosundaki ve oracle kullanıcıların tabloda her ikisi)

halka kısmi sınıf db: DBContext {

halka db (string connectionString) taban (connectionString) {}

...}

connectionString benim web.config'de aynı parçasıdır

: "VERİ KAYNAĞI = ip: port/ad; ŞİFRE = pwd; GÜVENLİK BİLGİSİ = Doğru PERSIST; KULLANICI KİMLİĞİ = usr"

Testi bana bunu verdi hata:

"verilen SQLConnection bir başlangıç ​​katalog veya AttachDBFilename kahini belirtmeyen" Ben "(Oracle.ManagedDataAccess.Client benim ProviderName vermeyin çünkü orada çalışmıyor bu düşünüyorum ") temel ilk paramda ancak sağlayıcıAdı için ikinci bir param kabul eden bir kurucu bulamadım.

Ben de bu çalıştı:

kamu db (dize connectionString): Baz (yeni OracleConnection (connectionString)) {}

ancak Visual Studio bana o hatayı orada veriyor:

"Erreur CS1503 Bağımsız Değişken 1: dönüştürme imkansız de 'Oracle.ManagedDataAccess.Client.OracleConnection' tr 'System.Data.Entity.Infrastructure.DbCompiledModel'"

DbCompiledModel'in ne olduğunu bilmiyorum, belki de bunun anahtarı ya da tamamen yanlış yapıyorum.

Ayrıca, kullanıcı ve parolayı değiştirmek ve bu bağlantı dizesini kullanan varsayılan db yapıcısını kullanmak için web.config bağlantı dizesini düzenlemeyi denedim, ancak bu dosyayı düzenlemek istediğim şeyi yapmaz: bağlantı dizesi yalnızca sonra düzenlenir db isteği bitti ve uygulamayı yeniden yüklüyor.

Süper olabileceğine dair bir fikriniz var, biraz kayboldum, sadece bazı BackEnd uygulamalarını yapmaya başladım (stajdayım) Daha önce FrontEnd yapıyordum.

Okuma için teşekkürler, biraz uzun. Ben

Sonny

cevap

3

dinamik new OracleConnection ayarlayabilirsiniz başıma soran deneyin yüzden forumlarda başarılı sonuçlarla aradığı şeyi bulamadık, ama aynı zamanda true için contextOwnsConnection set gerekir.

"Erreur CS1503 Tartışma 1: dönüşüm imkansız de 'Oracle.ManagedDataAccess.Client.OracleConnection' 'System.Data.Entity.Infrastructure.DbCompiledModel' tr"

public partial class Entities : DbContext 
    { 
     public Entities() 
      : base(new OracleConnection("DATA SOURCE=Server; PASSWORD=123;USER ID=SYSTEM"), true) 
     { 

     } 
     } 
+0

Bu hatayı gidermek Çok teşekkürler ! Tam olarak ihtiyacım olan şey bu! –