7

Tworzę projekt testowy, aby przetestować moje zapytania, wszystko jest w porządku, z wyjątkiem sytuacji, gdy próbuję przetestować metodę, która używa Entity Connection, otrzymuję następujący wyjątek:CodeFirst: Określone nazwane połączenie nie zostało znalezione w konfiguracji

The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid. 

enter image description here


Moje ciąg połączenia w app.config w TestQuery projec t który jest mój projekt rozruchu jest:

<connectionStrings> 
    <add name="DataLayer.Context" connectionString="Data Source=.;Initial Catalog=TestQ;Integrated Security=True" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

Wszystkie metody, które wykorzystują LINQ do podmiotu działa dobrze i przynosi dane z wyjątkiem tego jednego?

+2

'.' nie jest poprawną wartością' Źródło danych'? – masa

+0

@masa: to moja lokalna db !! –

+0

Skopiuj i wklej kod zamiast obrazu. –

Odpowiedz

5

To nie jest sposób na wykonanie polecenia SQL jednostki. Należy to zrobić w zamian:

// If you have a DbContext instance: 
var objectContext = ((IObjectContextAdapter)dbContext).ObjectContext; 
var query = objectContext.CreateQuery<Crop>(eSQL); 
var result = query.ToList(); 
+0

Wielkie dzięki, wyjątek w inicjacji połączenia, a nie w zapytaniu. Czy mógłby pan rzucić okiem na ciąg połączenia? –

+0

Nie jestem przekonany. Czy wypróbowałeś mój kod? –

+0

To działa dla mnie, ale nie o to pytałem, pytam o 'uruchom natywny sql z encjami encji' jak 'ADO.net', chcę w tym przypadku bezpośrednio porozmawiać z klientem sql, przeszukuję internet i znalazłem tę metodę, ale otrzymałem powyższy wyjątek –

0

Spróbuj zmienić nazwę to nazwę połączenia, na przykład tak: „TestConn”

using(var con = new EntityConnection("name=TestConn")) 

Inną rzeczą jest, aby spróbować w celu uzyskania ci ciąg połączenia z app.config i następnie przekazać go w konstruktorze EntityConnection.

string cs = ConfigurationManager.ConnectionStrings["TestConn"].ConnectionString 
var eConnection = new EntityConnection(cs);