Как указать местоположение метаданных в строке подключения при использовании edmx файла

У меня есть веб-проект с моделью данных, определенной в edmx файле. Строка подключения запускается как это:

metadata=res://*/;

Это хорошо работало некоторое время. Но кто-то еще работающий над проектом создал dll, который также использует платформу объекта и добавил его к папке мусорного ведра. Теперь, когда я пытаюсь создать свое соединение существует ошибка при загрузке метаданных.

Кроме общего изменения пути один или мы оба делает вещи, интересно, может ли проблема быть решена, если моя строка подключения может быть изменена, чтобы только искать метаданные, определенные в моем edmx файле. Проблема, ни за что в жизни я не могу найти, что правильный синтаксис делает это. Метаданные встраиваются в выходной блок, таким образом, нет никаких физических файлов метаданных для указания на. Как точно я должен указать местоположение метаданных в строке подключения?

7
задан David Hammond 29 January 2010 в 21:47
поделиться

1 ответ

Да, я видел эту проблему раньше. И это было всего лишь вопрос времени, прежде чем кто-то задал этот вопрос.

В основном RES: // * / загружает все метаданные во всех узлах, поэтому, если существует более одного набора метаданных EF, запутается.

Так что используя res: // * / по умолчанию, поскольку EF делает в webapplations, это ошибка, к сожалению, это то, что у нас не было времени для разрешения.

Обходной путь состоит в том, чтобы получить более конкретно с соединительной строкой что-то вроде этого: res: // /ap_code.northwind.csdl|res:// /app_code.northwind.ssdl|res://*/app_code.northwind.msl;

, где app_code - это папка App_code ( Предполагая, что находится в том, где ваша модель находится в вашем веб-проекте), и Northwind - это имя вашего EDMX. Если у вас возникли проблемы с использованием имена, посмотрите на имена ресурсов в вашей сборке, используя что-то вроде отражателя.

Делать, что это говорит о том, какой CSDL, SSDL и MSL загружают из загруженных сборок и должны решить вам проблему.

Надеюсь, это поможет

Алекс

7
ответ дан 7 December 2019 в 07:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: