Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Web.Config连接到数据库<;应用程序设置>;第C节#/MVC_C#_Sql Server_Asp.net Mvc_Connection String - Fatal编程技术网

C# 从Web.Config连接到数据库<;应用程序设置>;第C节#/MVC

C# 从Web.Config连接到数据库<;应用程序设置>;第C节#/MVC,c#,sql-server,asp.net-mvc,connection-string,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" /> </c

我当前使用连接到数据库

Web.Config

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

public class MVCDatabase : DbContext
{
    public DbSet<Things> Tables2 { get; set; }
    public DbSet<OtherStuff> Table2{ get; set; }
} 
公共类MVCDatabase:DbContext
{
公共数据库集表2{get;set;}
公共数据库集表2{get;set;}
} 
是否有办法将数据库连接字符串移动到Web.Config文件的[appSettings]部分,而该字符串仍在控制器等中工作

Web.Config示例

<appSettings>
     <add key="ConnectionString" value="Server=dbserver; Database=mvcdatabase; User Id=username; Password=password"/>
</appSettings>
并将其放在我的web.config文件中

像这样的

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

试试这个:

  • 参考系统.配置

  • 在文件顶部添加以下内容:

    using System.Configuration;
    
  • 然后通过添加构造函数更改模型,如下所示:

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

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

    Hi,这已添加到我的模型中,并且web.config已更新,我现在收到此错误
    通过
    WebSecurity.InitializeDatabaseConnection()
    方法未找到网络路径,用于用户登录,有什么想法吗?DBContext是否在单独的程序集中?如果是这样,请确保在web应用程序配置中定义的连接字符串以及assembly.Hi Jack中定义的连接字符串。将连接字符串添加到web.config文件是否解决了此问题?如果是,请您将问题标记为已回答?嗨,我已经用我发现的解决问题的方法更新了我的问题,谢谢Rob
    public class MVCDatabase : DbContext
    {
        public MVCDatabase() : base(ConfigurationManager.AppSettings["ConnectionString"])
        {
        }
    
        ...
    }