Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.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# 当我引用存在连接字符串的项目时,为什么找不到连接字符串_C#_Asp.net Mvc - Fatal编程技术网

C# 当我引用存在连接字符串的项目时,为什么找不到连接字符串

C# 当我引用存在连接字符串的项目时,为什么找不到连接字符串,c#,asp.net-mvc,C#,Asp.net Mvc,我构建了一个单独的数据层,其中包含我的实体框架。我在当前项目中提到了这个单独的项目。。。我在当前的MVC控制器中添加了以下内容: using SMCD_DataLayer; [HttpPost] public ActionResult Login(LoginViewModel lv) { var db = new SMCD_DataStoreEntities(); var found = db.Users.Se

我构建了一个单独的数据层,其中包含我的实体框架。我在当前项目中提到了这个单独的项目。。。我在当前的MVC控制器中添加了以下内容:

using SMCD_DataLayer;

  [HttpPost]
        public ActionResult Login(LoginViewModel lv)
        {
            var db = new SMCD_DataStoreEntities();
            var found = db.Users.Select(x => x.Username == lv.userId && x.Password == lv.passWord).Any();

            if (ModelState.IsValid)
            {
                if (!found)
                {
                    lv.errorMsg = "User ID is invalid!";
                }
                else
                {
                    return RedirectToAction("IntroPage", "Devices");
                }
            }

            return View(lv);
        }
我的SMCD_数据存储实体位于SMCD_数据层中,但此控制器位于SMCD_门户项目中

在找到的行上。。。我收到以下错误消息:

发生System.InvalidOperationException异常 HResult=0x80131509 Message=在应用程序配置文件中找不到名为“SMCD_DataStoreEntities”的连接字符串

连接字符串存在于SMCD_数据层中,即使我在当前项目中引用它,它是否需要存在于SMCD_门户项目中

这是存在于SMCD_数据层App.config中的连接字符串,记住我的控制器存在于SMCD_门户中

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <connectionStrings>
    <add name="SMCD_DataStoreEntities" connectionString="metadata=&quot;res://*/SMCD DataStore.csdl|res://*/SMCD DataStore.ssdl|res://*/SMCD DataStore.msl&quot;;provider=System.Data.SqlClient;provider connection string=&quot;data source=KARL-LT\SQLEXPRESS;initial catalog=SMCD_DataStore;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

应用程序使用的或任何引用程序集使用的任何.config设置通常都需要位于主应用程序的.config文件中

这同样适用于连接字符串


因此,将这些连接字符串放在主应用程序的.config文件中,您应该不会有问题。

应用程序使用的任何.config设置,或任何引用的程序集使用的任何.config设置,通常都需要放在主应用程序的.config文件中

这同样适用于连接字符串


因此,将这些连接字符串放在主应用程序的.config文件中,您应该会没事。

请添加相关代码。您当前提供的所有代码均未显示连接字符串。您也没有从web.config(或相关资源)提供连接字符串。删除实际的连接字符串信息,我们不需要知道主机、数据库名、用户名或密码。当然我可以向您展示我的主要问题是。。。实体框架可以存在于另一个项目中,还是必须存在于我的控制器正在使用它的当前项目中?你的问题听起来根本不像这样。但是直接的答案是否定的,如果解决方案和项目布局正确,您的MVC应用程序不必有任何对EF的引用。(web.config除外)但是,您的连接字符串需要位于MVC应用程序的.config文件中。将其包含在类库的配置文件中不起作用。请添加相关代码。您当前提供的所有代码均未显示连接字符串。您也没有从web.config(或相关资源)提供连接字符串。删除实际的连接字符串信息,我们不需要知道主机、数据库名、用户名或密码。当然我可以向您展示我的主要问题是。。。实体框架可以存在于另一个项目中,还是必须存在于我的控制器正在使用它的当前项目中?你的问题听起来根本不像这样。但是直接的答案是否定的,如果解决方案和项目布局正确,您的MVC应用程序不必有任何对EF的引用。(web.config除外)但是,您的连接字符串需要位于MVC应用程序的.config文件中。将其包含在类库的配置文件中是行不通的。