连接字符串和全局变量,n层应用程序与dll



分层应用程序,共4层,如下:

Presentation layer (MVC4)
Business layer (C# library project)
Data Access layer (c# library project)
Model layer (c# library project that contains models, EF dbcontext, etc)

所以在这个应用程序中,模型层包含EF数据库上下文,一些自定义模型和其他类似的东西,数据访问层包含对EF的查询和对db的直接查询,业务层包含业务逻辑和表示是一个mvc4项目。

业务层、数据层和模型层是库项目。

mvc4 presentation layer has references to BL and ML.
BL has references to DAL and ML.
DAL has references to ML.
所以问题是:我应该把字符串连接和全局变量放在哪里?最重要的是怎么做?

我应该把它们保存在mu mvc4应用程序的web.conf中吗?如果是,机器学习如何访问它?

还是应该在ML上?

是的,连接字符串进入MVC4应用程序的web.config。在Model层,你只需要使用System.Configuration。对象从应用程序的配置中检索命名的连接字符串。

在引用的DLL中访问连接字符串和其他配置项时,从运行该DLL的应用程序的配置中获得。这允许您根据使用方式对DLL组件进行不同的配置。

例如,您通常会有一个连接字符串指向MVC4应用程序的web.config中的真实数据库。为了为您的模型DLL编写测试,但是,您可以在您的测试项目的app.config文件中有一个不同的连接字符串,指向测试数据集。只要两个连接字符串具有相同的名称,Model.DLL就不必知道或关心它们来自何处。

您的连接字符串应该放在Web中。配置MVC4应用

在ML中你有一个DbContext的实现。只需将以下构造函数添加到该实现中。

public DatabaseContext() : base("ConnectionstringName") { }

在您的Web。配置确保添加了相应的connectionstring

<connectionStrings>
<add name="ConnectionstringName" .... />
</connectionstring>

你的MVC应用程序是应用程序的聚合根。所以你所有的服务/对象都应该在MVC中构造。将您的连接字符串保持在web.config中是合乎逻辑的,并且有很好的方法将它们保持在那里,有一种将开发字符串替换为web生产字符串的方法。配置转换。

相关内容

  • 没有找到相关文章

最新更新