tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
2750
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Jantz Jantz ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    207
    Hallo,

    ich versuche mich gerade etwas an der .NET Programmierung. Ich habe eine Solution auf einer externen Festplatte erstellt (keine Ahnung ob der Hinweis relevant ist).

    In dieser Solution befinden sich momentan 3 Projekte.

    1) Eine Consolen Applikation: Namespace.ConApp
    2) Eine Klassen libary : Namenspace.Services
    3) Eine Klassen libary: Namenspace.Models

    In dem Projekt "Models" befindet sich nur eine Entity framework .edmx Datei die ich mit Hilfe des Wizards erstellt habe. In der AppConfig ist folgender EntityConnectionString zu finden:
    Code :
    1
    
    <add name="LTEntities" connectionString="metadata=res://*/LTModels.csdl|res://*/LTModels.ssdl|res://*/LTModels.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MATRIX\SQLEXPRESS;Initial Catalog=LT;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

    Soweit sogut, erstellen konnte ich das Projekt "Models". Nun habe ich das Projekt "Models" dem Projekt "Business" bekannt gemacht und einfach in einer Art controller Klasse angesprochen. Und diese Klasse wiederum der ConsolenApp testweise bekannt gemacht um die Funktion fix zu testen.

    Ich kann die komplette Solution erstellen, es werden keine Fehler angezeigt. Wenn ich diese jedoch debugge, dann sagt er mir folgendes (zu dem Zeitpunkt wenn ich über den Controller darauf zugreifen möchte):

    Die angegebene benannte Verbindung wurde entweder nicht in der Konfiguration gefunden, ist nicht für die Verwendung mit dem EntityClient-Anbieter gedacht oder ist ungültig.
    Und verweist dann in die Designer.cs der .edmx Datei in diesen Bereich:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    /// <summary>
            /// Initialisiert ein neues LTEntities-Objekt mithilfe der in Abschnitt 'LTEntities' der Anwendungskonfigurationsdatei gefundenen Verbindungszeichenfolge.
            /// </summary>
            public LTEntities() : 
                    base("name=LTEntities", "LTEntities")
            {
                this.OnContextCreated();
            }

    Kann mir vielleicht irgendwer sagen, was ich genau falsch mache? Es scheint ja so dass er garkeine Verbindung herstellen kann bzw. den ConnectionString nicht findet oder aber dieser falsch ist.

    Grüße und vielen Dank im voraus.

    Jantzz
     

  2. #2
    Jantz Jantz ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    207
    Also hab nochmal etwas geforscht.

    Das Problem ist, dass er nicht die korrekte App.Config zu fassen bekommt. D.h. wenn ich die AppConfig des Startprojektes mit dem EntityConnectionString erweitere, dann findert er die verbindung.
    Läuft nun zwar, aber irgendwie verwirrt mich das.

    MfG
     

  3. #3
    Jantz Jantz ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    207
    Ok noch weiter gefroscht. Es scheint wohl so gewollt zu sein.

    It's not a beta thing, it's by design. The reason we design it this way is that the connection string is really considered configuration info (not part of the library). While in development you might want your app to run against one server, but when you put it in production you might want to connect to a different server, and after deployment you might want to redirect to yet another server when you rearrange things in a server farm or something.



    The issue you are encountering is that there's not really a "per-DLL" config file or something like that. The config is associated with the app you build. The generated entity classes just follow an already well-established ado.net best practice of going after the config info in the config file.



    - Danny Simmons - MSFT
     

  4. #4
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Richtig, das ganz ist so gewollt.
    Die Datei heißt schließlich app.config!
    Dies hat den Vorteil, dass du bei komplexeren Anwendungen mit mehreren Dlls nur eine app.config brauchst und nicht mehrere, in denen ggf. sogar immer das gleiche steht
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

Ähnliche Themen

  1. Kann keine neue Lan-Verbindung herstellen
    Von Jigsaw im Forum Netzwerke
    Antworten: 0
    Letzter Beitrag: 07.08.07, 21:50
  2. Antworten: 16
    Letzter Beitrag: 01.06.05, 14:36
  3. Outlook kann keine Verbindung herstellen
    Von J-Me im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 28.09.04, 14:36
  4. Kann einfach keine Verbindung herstellen
    Von Mudknot im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 24.09.04, 12:45
  5. Ich kann über MySQLFront keine Verbindung zum MySQL-Server herstellen
    Von messmar im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 11.07.04, 17:39