Почему для Entity Framework Connection требуется свойство метаданных?
=====================================================================

 Я переключил свой DAL с использования LINQ на Entity Framework. Поскольку мое приложение подключается к различным базам данных в зависимости от текущего пользователя, мне нужно динамически создавать DataContext во время выполнения и передавать соответствующую строку подключения. Однако, когда я попытался программно создать соединение Entity Framework, используя мою старую строку соединения, соединение не удалось. Он пожаловался, что не распознал ключ в строке подключения, а точнее «сервер». 

 Я обнаружил, что мне нужно сделать это, чтобы заставить работать соединение Entity Framework: 

```
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.Provider = "System.Data.SqlClient";
entityBuilder.ProviderConnectionString = clientConnectionString;
entityBuilder.Metadata = "res://*/xxxxxxxxxx.csdl...";
Entities entities = new Entities(entityBuilder.ToString());

```
  Почему это?   
 Для чего нужна метаданные?   
 Будет ли проблемой то, что она всегда одинакова для нескольких разных соединений?   
 Что это должно быть?   
 Есть ли способ обойти это? 

 Заранее спасибо! 

 Обновление 1: спасибо за обновление Randolpho, но ...   
 Причина, по которой у меня возникла эта проблема, заключается в том, что я не могу сохранить строки подключения в файле конфигурации. Строка подключения определяется динамически во время выполнения, к которому подключается пользователь. 

 Вот мой точный сценарий:   
 Если пользователь A подключается, приложение извлекает данные из базы данных A. Если пользователь B подключается, приложение извлекает данные из базы данных B.   
 Строки подключения хранятся в основной базе данных, и их количество потенциально не ограничено. Каждый раз, когда я добавляю пользователя, я не хочу заходить в web.config, не говоря уже о том, что он в конечном итоге получит ОГРОМНОЕ! 

 Вы найдете эти ссылки очень информативными: 

 <http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnection.connectionstring.aspx> 

 <http://weblogs.asp.net/pgielens/archive/2006/08/21/ADO.NET-Entity-Framework-Metadata.aspx> 

 Нижняя линия? Entity Framework нужны метаданные для построения ваших сопоставлений сущностей. 

 Кроме того, вам следует рассмотреть возможность перемещения информации о соединении в файл конфигурации, а не встраивать ее в код. Первая ссылка покажет вам, как это сделать.