c#-在单独的程序集中带有模型的ASP.NET MVC
作者:互联网
我目前有一个正在开发的.NET解决方案,涉及多个子项目,包括ASP.NET MVC项目.我的模型已分离到一个单独的程序集中,因为我需要在解决方案中的其他各个项目中使用它.
我的模型由ADO.NET实体框架实体模型组成.我决定为模型使用单例模式,并使用以下代码(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.尽管我必须在该项目的App.Config文件中包括连接字符串,但在我拥有的第三个项目Windows服务中,该方法仍然可以正常工作.
但是,当我尝试从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>
…我仍然抛出以下异常:
The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.
程序集都有不同的名称空间,但是由于Windows Service可以很好地访问它,所以我认为这不是问题.
救命?
谢谢,
大卫
附注:我注意到的另一个怪癖是,当告诉Visual Studio创建一个新的强类型视图时,它会生成关于模型装配的文件未找到错误.我已经看到此错误在网络上讨论了几次,都没有解决方法.
解决方法:
我不确定这是怎么回事,但Misha N提出了一个很好的问题.
但是我真的认为您应该重新考虑Singleton模式(至少对于MVC应用程序而言).
超时,您的ObjectContext将包含越来越多的对象,结果将放慢速度.有关原因的更多信息,请参见this tip.
亚历克斯
标签:ado-net,ado-net-entity-data-model,c,entity-framework 来源: https://codeday.me/bug/20191107/2002416.html