Nazwa EntityContainer musi być unikalna. Pole EntityContainer o nazwie „Entities” jest już zdefiniowane

Dla małego tła:

Mam projekt DLL o następującej strukturze:

Rivworks.Model (project)  
  \Negotiation (folder)  
      Model.edmx (model from DB #1)  
  \NegotiationAutos (folder)  
      Model.edmx (model from DB #2)  

Przeniosłem ciągi połączeń z app.config tego projektu do pliku web.config. Oni sąnie w sekcji ConnectionString. Mam raczej statyczną klasę, która zużywa część web.config i udostępnia je mojej aplikacji jako AppSettings. [SettingName].

<FeedAutosEntities_connString>metadata=res://*/;provider=System.Data.SqlClient;provider connection string='Data Source=db4;Initial Catalog=RivFeeds;Persist Security Info=True;User ID=****;Password=&quot;****&quot;;MultipleActiveResultSets=True'</FeedAutosEntities_connString>
<RivWorkEntities_connString>metadata=res://*/NegotiationAutos.NegotiationAutos.csdl|res://*/NegotiationAutos.NegotiationAutos.ssdl|res://*/NegotiationAutos.NegotiationAutos.msl;provider=System.Data.SqlClient;provider connection string='Data Source=db2;Initial Catalog=RivFramework_Dev;Persist Security Info=True;User ID=****;Password=&quot;****&quot;;MultipleActiveResultSets=True'</RivWorkEntities_connString>

Mam 2 klasy, po jednej dla każdego kontekstu i wyglądają tak:

namespace RivWorks.Model
{
    public class RivWorksStore
    {
        private RivWorks.Model.Negotiation.Entities _dbNegotiation;

        public RivWorksStore(string connectionString, string metadata, string provider)
        {
            EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
            entityBuilder.ConnectionString = connectionString;
            entityBuilder.Metadata = "res://*/";    // metadata;
            //entityBuilder.Provider = provider;
            _dbNegotiation = new RivWorks.Model.Negotiation.Entities(entityBuilder.ConnectionString);
        }

        public RivWorks.Model.Negotiation.Entities NegotiationEntities()
        {
            return _dbNegotiation;
        }
    }
}

namespace RivWorks.Model
{
    public class FeedStoreReadOnly
    {
        private RivWorks.Model.NegotiationAutos.Entities _dbFeed;

        public FeedStoreReadOnly(string connectionString, string metadata, string provider)
        {
            EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
            entityBuilder.ConnectionString = connectionString;
            entityBuilder.Metadata = "res://*/";    // metadata;
            //entityBuilder.Provider = provider;
            _dbFeed = new RivWorks.Model.NegotiationAutos.Entities(entityBuilder.ConnectionString);
        }

        public RivWorks.Model.NegotiationAutos.Entities ReadOnlyEntities()
        {
            return _dbFeed;
        }
    }
}

Zauważysz, że MetaData jest przepisywana do krótkiej wersji.

Gdy komentuję tę linię w każdej klasie, otrzymuję ten błąd:

Nie można załadować określonego zasobu metadanych.

Kiedy opuszczam tę linię w każdej klasie, otrzymuję ten błąd:

Określony schemat jest nieprawidłowy. Błędy:

Negotiation.Model.csdl (3,4): błąd 0019: Nazwa EntityContainer musi być unikalna. Pole EntityContainer o nazwie „Entities” jest już zdefiniowane.

Wiem, że to coś prostego, coś oczywistego. Wszelkie sugestie mile widziane ...

questionAnswers(12)

yourAnswerToTheQuestion