В настоящее время у меня есть решение .NET, которое я разрабатываю и которое включает несколько подпроектов, в том числе проект ASP.NET MVC. Моя модель была разделена на отдельную сборку, потому что мне нужно использовать ее из различных других проектов в решении.
Моя модель состоит из модели сущностей ADO.NET Entity Framework. Я решил пойти с одноэлементным шаблоном для моей модели со следующим кодом (SalsaEntities является названием моей модели сущности):
partial class SalsaEntities
{
private static SalsaEntities _instance = new SalsaEntities();
/// <summary>
/// Singleton instance of SalsaEntities.
/// </summary>
public static SalsaEntities Instance
{
get
{
return _instance;
}
}
}
Затем я использую SalsaEntities.Instance из других моих сборок. Это прекрасно работает в третьем проекте, который я имею, - Служба Windows, хотя мне пришлось включить строку подключения в файл App.Config этого проекта.
Однако я получаю исключение, когда пытаюсь использовать SalsaEntities.Instance из моего проекта ASP.NET MVC. Несмотря на включение следующего в файлы Web.config как в корне проекта, так и в каталоге Views ...
<connectionStrings>
<add name="SalsaEntities" connectionString="metadata=res://*/SalsaModel.csdl|res://*/SalsaModel.ssdl|res://*/SalsaModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=DbSalsa;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
... У меня все еще выбрасывается следующее исключение:
Указанное именованное соединение либо не найдено в конфигурации, не предназначено для использования с поставщиком EntityClient, либо недействительно.
Все сборки имеют разные пространства имен, но, поскольку служба Windows обращается к ней просто отлично, я не думаю, что это проблема.
Помощь
Спасибо,
David
P.S .: Еще одна странная особенность, которую я заметил, заключается в том, что при указании Visual Studio создать новый строго типизированный вид он генерирует ошибку «файл не найден» в отношении сборки модели. Я видел, как эта ошибка обсуждалась несколько раз в Интернете без разрешения.