在数据访问项目中使用web.config连接字符串

25 浏览
0 Comments

在数据访问项目中使用web.config连接字符串

我使用的是.NET 4.6.1、Visual Studio 2015和SQL Server Developer 2016。我想要在主项目的web.config文件中指定我的EF连接字符串,但是我无论如何都无法找到如何在我的数据访问项目中引用它的方法。我找到的每一个答案都说要像这个问题中那样使用以下代码:\nSystem.Configuration.ConfigurationManager.ConnectionStrings[\"connectionStringName\"].ConnectionString;\n然而,当我使用这个代码时,有效的连接字符串并没有被传递过去。相反,它得到的是一个看起来是默认的连接字符串;数据源被设置为.\\SQLEXPRESS,而我在任何地方都没有定义这样的字符串。在解决方案中搜索所有文件中的SQLEXPRESS也没有返回任何结果,所以它没有在任何地方硬编码。\n从我的主web.config文件(带有每个构建的相关转换)传递连接字符串的正确方法是什么?

0
0 Comments

使用web.config连接字符串在数据访问项目中的问题:

问题原因:可能是配置字符串中的提供程序有误。

解决方法:尝试连接到Server Explorer -> Data Connections,并生成属性。接下来,可以尝试添加一个ADO.Net数据模型,并将其指向正确的带有Access驱动程序的数据库。问题可能仅仅是在配置字符串中提供程序的错误。

0
0 Comments

在数据访问项目中使用Web.config连接字符串的问题是因为数据源被设置为".\SQLEXPRESS",而没有在任何地方定义该字符串。在解决方案的所有文件中搜索SQLEXPRESS的结果为空,因此它没有在任何地方硬编码。

问题的解决方法是在第一个连接字符串之前添加来删除它。

你也可以在machine.config文件的第126行删除.\SQLExpress连接字符串,但是在我个人的意见中,最好不要修改machine.config,而是使用来代替。

0
0 Comments

在数据访问项目中使用web.config连接字符串的问题是因为只有一个app.config/web.config文件会在运行时被读取,并且该配置文件与应用程序的入口点相关联。因此,如果您有一个Web项目和一个被引用的项目作为数据访问层,并且您希望从配置文件中读取连接字符串,则会使用Web项目的web.config。对于Windows应用程序或WPF等,也是如此,只有应用程序的主入口点配置文件将被使用。一旦应用程序正在运行,您可以在代码的任何地方引用那个app.config/web.config,通常使用字符串标识符来做到这一点。

换句话说,如果您有一个将数据访问编译为MyDA.dll的项目,并且该项目中有一个可能输出为MyDA.dll.config的app.config文件(默认情况下不会发生),则在运行时将忽略MyDA.dll.config中的任何内容。该文件不会被读取,只有web.config或.exe的入口点的app.config将被使用。

对于Entity Framework的DbContext,您可以直接将连接字符串的名称传递给构造函数。您不必自己检索连接字符串并传递它。因此,在web.config中为每个连接分配一个特定的唯一名称。

在您的代码中,您可以使用该名称创建Entity Framework的DbContext。

在我的以往项目中,我通常将DbContext映射到运行时的一个数据库。我在这里的意思是,我不会多次使用相同的DbContext类型指向不同的数据库。在这种情况下,我会将该名称硬编码到我的DbContext类型中,并确保我的消费应用程序在web.config或app.config中列出该连接名称。

或者,如果您确实希望完整的连接元素,可以引用System.Configuration(在进行以下调用的项目中将其添加到项目引用中),并以以下方式调用它。

我已经有一段时间没有使用这种方法了,但也许在您的案例中使用它有一个很好的理由。

0