c# - 从 Web.Config <appSettings> 部分 C#/MVC 连接到数据库

标签 c# sql-server asp.net-mvc connection-string

我目前正在使用

连接到数据库

Web.Config

<connectionStrings>
    <add name="MVCDatabase" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\MVCDatabase.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

Controller

public MVCDatabase db = new MVCDatabase();

模型

public class MVCDatabase : DbContext
{
    public DbSet<Things> Tables2 { get; set; }
    public DbSet<OtherStuff> Table2{ get; set; }
} 

有没有办法将数据库连接字符串移动到 Web.Config 文件中的 [appSettings] 部分,并且它仍在 Controller 等中工作?

Web.Config 示例

<appSettings>
     <add key="ConnectionString" value="Server=dbserver; Database=mvcdatabase; User Id=username; Password=password"/>
</appSettings>

编辑(修复)

搜索负载后,我确定我需要并将其放入 generate a machine key并将它放在我的 web.config 文件中

像这样的

<machineKey validationKey="8AA518FA814CFC6572AFD7E3E1139D1AE5A3CE9B4952B2BD2DABC1428C3CC85842A4F1060E02F8EDFA2FD5CE7AAD0F67EF9842AA96186544F4A6D5ED3444AC48" decryptionKey="9F2CABCCBC0EA7CD6B96BD263AB78962D1577AB557BB7422" validation="SHA1" />

最佳答案

试试这个:

  1. 引用系统配置

  2. 在文件顶部添加:

    using System.Configuration;
    

然后通过如下添加构造函数来更改您的模型:

public class MVCDatabase : DbContext
{
    public MVCDatabase() : base(ConfigurationManager.AppSettings["ConnectionString"])
    {
    }

    ...
}

然后按照您在问题中所说的设置配置文件。可以肯定的是,构造函数将接受配置元素的名称(假定其位于 connectionStrings 上)或显式连接字符串,ConfigurationManager 应返回该字符串。

关于c# - 从 Web.Config <appSettings> 部分 C#/MVC 连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225331/

相关文章:

c# - 无法将 json 转换为对象

c# - 如何从嵌入式资源中提取文件并将其保存到磁盘?

c# - 将私有(private)成员封装为属性与定义没有私有(private)成员的属性有什么区别?

SQL Server 2008 列名 'Type' 未显示在更新查询中

sql-server - SQL Server : SELECT only the rows with MAX(DATE)

asp.net-mvc - 无法在 MVC 应用程序中配置 Redis 缓存

asp.net-mvc - UserManager.Create(用户,密码)抛出 EntityValidationError 说 Id 是必需的?

c# - 使用 Entity Framework 将字符串值保存到 SQL 表中,该表包含 Null 字符,所有后续字符的剪切

c# - 使用未知 IV 解密 PKCS#5 填充 AES/ECB

mysql - 如何在 Laravel 5 中为 Yajra 数据表指定特定连接(或数据库名称)