Entity framework, multiple edmx для совместного использования строки подключения - возможно ли?

Я видел ряд связанных вопросов, но ни один из них не является именно тем, что я ищу.

Мы используем одну базу данных и должны иметь отдельные файлы edmx с разными именами классов Model и ObjectContext. В результате получается несколько строк подключения, которые отличаются только частью метаданных.

На данный момент я сделал следующее:

Web.config

<connectionStrings configSource="connectionStrings.config"></connectionStrings>

connectionStrings.config

<connectionStrings> 

<add name="Entities" connectionString="metadata=res://*/Entity.Model.csdl|
res://*/Entity.Model.ssdl|res://*/Entity.Model.msl;
provider=CONNECTION STRING DATA GOES HERE"/> 

<add name="TwoEntities" connectionString="metadata=res://*/TwoEntity.TwoModel.csdl|
res://*/TwoEntity.TwoModel.ssdl|res://*/TwoEntity.TwoModel.msl;
provider=EXACTLY THE SAME CONNECTION STRING DATA GOES HERE"/> 

</connectionStrings> 

В моих классах, производных от ObjectContext, у меня есть сгенерированные по умолчанию конструкторы:

public Entities()
            : base("name=Entities", "Entities")
{
}

и

public TwoEntities()
            : base("name=TwoEntities", "TwoEntities")
{
}

Что было бы очень приятно не иметь двух строк подключения в файле .config, но использовать одно и то же соединение из этого файла и каким-то образом переопределять его часть метаданных в каждом классе.

Есть предложения, как это сделать?

5
задан Paul 14 November 2011 в 22:56
поделиться