gpt4 book ai didi

c# - ASP.NET MVC 模型在单独的程序集中

转载 作者:行者123 更新时间:2023-11-30 15:49:19 25 4
gpt4 key购买 nike

我目前有一个正在开发的 .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。尽管我必须在该项目的 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=&quot;Data Source=localhost;Initial Catalog=DbSalsa;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True&quot;" 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 服务可以很好地访问它,我认为这不是问题所在。

帮忙吗?

谢谢,大卫

P.S.:我注意到的另一个怪癖是,当告诉 Visual Studio 创建一个新的强类型 View 时,它会生成一个关于模型程序集的文件未找到错误。我已经看到这个错误在网络上讨论了几次但没有解决。

最佳答案

我不确定这里发生了什么,但 Misha N 提出了一个很好的问题。

但是我真的认为您应该重新考虑单例模式(至少对于 MVC 应用程序而言)。

随着时间的推移,您的 ObjectContext 将包含越来越多的对象,因此速度会变慢。参见 this tip有关原因的更多信息。

亚历克斯

关于c# - ASP.NET MVC 模型在单独的程序集中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1702401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com