Мое решение имеет проект класса lib с базой данных (мой DAL) и веб-проект, который будет выступать в качестве слоя службы WCF.
Я добавляю ссылку на проект DAL из веб-проекта, и при компиляции моя база данных копируется в папку Bin веб-проекта.
Файл Web.config нуждается в строке подключения. Если я использую:
attachdbfilename=|DataDirectory|\Test.mdf
ищет БД в папке App_Data.
Я могу легко поместить копию БД в папку App_Data, однако на этом этапе разработки я часто делаю изменения в схеме (через копию в DAL) и хотел бы, чтобы проект забрал версия скопирована в папку bin слоев WCF.
Я знаю, что могу изменить DataDirecty по умолчанию следующим образом:
AppDomain.CurrentDomain.SetData("DataDirectory", path);
А) Если не использовать жестко заданный абсолютный путь, есть ли лучший способ получить строку подключения для использования папки bin?
B) Если я изменю настройку DataDirectory по умолчанию, как программно получить абсолютную ссылку на папку bin?
<Rant>
Разве Visual Studio 2010 не должна была быть достаточно умной, чтобы реализовывать типы проектов, и вместо того, чтобы вытягивать БД из указанной сборки в папку bin, вместо этого использовать папку App_Data? </Rant>