Я видел несколько связанных вопросов, но ни один из них не является тем, что я ищу.
Мы используем одну базу данных и должны иметь отдельные файлы 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, а использовать один и тот же тип подключения из этого файла и каким-то образом переопределить его часть метаданных в каждом классе.
Есть предложения, как это сделать?