我目前正在开发一个 .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 文件中包含连接字符串。
但是,当我尝试使用我的 ASP.NET MVC 项目中的 SalsaEntities.Instance 时,我遇到了一个异常。尽管在项目根目录和 Views 目录中的 Web.config 文件中包含以下内容...
<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 服务可以很好地访问它,我认为这不是问题所在。
帮助?
谢谢,大卫
PS:我注意到的另一个怪癖是,当告诉 Visual Studio 创建一个新的强类型视图时,它会生成一个关于模型装配的文件未找到错误。我已经看到这个错误在网上讨论了几次,但没有解决方案。