Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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# ASP.NET MVC 4中的Visual Studio 2013中MVC 4中的MS SQL Compact Edition应使用哪些providerName和ConnectionString?_C#_Sql_Asp.net Mvc_Asp.net Mvc 4_Visual Studio 2013 - Fatal编程技术网

C# ASP.NET MVC 4中的Visual Studio 2013中MVC 4中的MS SQL Compact Edition应使用哪些providerName和ConnectionString?

C# ASP.NET MVC 4中的Visual Studio 2013中MVC 4中的MS SQL Compact Edition应使用哪些providerName和ConnectionString?,c#,sql,asp.net-mvc,asp.net-mvc-4,visual-studio-2013,C#,Sql,Asp.net Mvc,Asp.net Mvc 4,Visual Studio 2013,Visual Studio 2013中MVC 4中MS SQL Compact Edition的Web.config文件中应该使用什么providerName 导言 当我使用: <connectionStrings> <add name="MusicStoreEntities" connectionString="Data Source=|DataDirectory|MvcMusicStore.sdf" providerName="System.D

Visual Studio 2013中MVC 4中MS SQL Compact Edition的
Web.config
文件中应该使用什么
providerName

导言 当我使用:

 <connectionStrings>
    <add name="MusicStoreEntities"
     connectionString="Data Source=|DataDirectory|MvcMusicStore.sdf"
     providerName="System.Data.SqlServerCe.4.0"/>
  </connectionStrings> 
我得到:

那我为什么要改变什么呢? 实际问题: 如果我想通过此菜单添加新控制器时离开了
providerName=“System.Data.SqlServerCe.4.0”

我得到:

但是如果我设置了
providerName=“System.Data.SqlClient
,则会生成
StoreManagerController
,但数据库根本不工作

问题:如何生成
StoreManagerController
?我遵循本教程:并在该步骤之前链接到工作项目:

请记住“Mvc音乐商店”“从MVC开始就是MVC101。考虑到已经发生了很多变化,文档/走查有点偏离的可能性是不利的。话虽如此:

由于您的连接字符串,数据驱动控制器的T4模板显然失败。这很可能是因为SQLExpress(本身)已经经历了很多周期,现在正在跟进。考虑到您使用的是MVC4,现在可能是升级的好时机,这意味着您可以享受SQL Express的所有好处(包括
System.Data.SqlClient
提供程序),而不必担心以前的版本可能带来的麻烦

话虽如此,请更改连接字符串以使用新格式:

<connectionStrings>
    <add name="MusicStoreEntities"
         connectionString="Data Source=(localdb)\v11.0;Integrated Security=true;AttachDbFileName=|DataDirectory|MvcMusicStore.mdf"
         providerName="System.Data.SqlClient" />
</connectionStrings>

并且(可能)重新运行DatabaseInitializer(如果我没记错的话,这应该会自动发生,因为它使用的是EF。如果没有,您可以转到包管理器控制台并运行
更新数据库

现在,这将为您提供控制器模板所需的提供程序,同时仍将其保留为本地(dev)数据库

  • 删除本地服务器上的数据库(确保您备份了数据/您的种子方法具有所需的相关数据)

  • 从“迁移”文件夹中删除配置文件之外的所有迁移类文件。(需要启用迁移才能使其工作“启用迁移”)

  • 在包管理控制台中键入以下命令:“添加迁移更新”。一旦成功

  • 在包管理器控制台中键入“更新数据库”

  • 将在没有任何数据的情况下重新创建数据库


  • 我对MVC5也有同样的问题,因此我将web.comfig连接字符串更改为:

     <add name="MusicStoreEntities" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|MvcMusicStore.mdf Catalog=MvcMusicStore" providerName="System.Data.SqlClient"/>
    
    
    

    这对我有用

    您有正确的提供者;看起来控制器的T4内出现了故障。我的猜测是实现一个空控制器并添加上下文,或者在本地SQL Express上旋转它并使用
    System.Data.SqlClient
    。我是ASP.NET noob。我从基础上学习。我该怎么办?也许重新安装一些东西?这是我在OP底部提供链接的教程对我不起作用的第一个地方。另外,您可以尝试将连接字符串更改为如下内容:
    Data Source=(localdb)\v11.0;综合安全=真实;AttachDbFileName=|数据目录| MvcMusicStore.mdf
    。如果您使用的是MVC4,您可能希望迁移到使用。@BradChristie本教程基于Compact Edition,我现在所做的一切都是在providerName设置为Compact Edition时完成的。代码的语法或其他内容与以下内容错误:
    datasource=(localdb)\v11.0;综合安全=真实;AttachDbFileName=| DataDirectory | MvcMusicStore.mdf
    应该是
    (可能需要重新执行数据库初始值设定项)跟进:连接字符串基于您尝试完成的内容。显然,使用MySQL/InnoDB/等。您必须使用它们的提供者。然而,在更新的版本中,随着
    数据源=
    的变化,您将看到
    System.Data.SqlClient
    。它可能是
    SQLSERVER
    (SQL计算机名称)、
    SQLSERVER\SQLEXPRESS
    (SQLSERVER外的SQL Express实例)、
    (LocalDb)\v11
    (更新的SQL Express的本地版本)、
    \SQLEXPRESS
    ,等等。对于非开发版本,您将提供
    初始目录=
    (数据库名称)。对于开发版本,通常提供
    AttachDbFileName=
    (因为它是基于文件的数据库,而不是服务器上的数据库)。您还可以使用
    |DataDirectory |
    引用您所在项目的本地
    App_Data
    目录(用于web项目)。顺便说一句,它是Sql CE(我认为不推荐使用)和Sql Server Express的混合体。也就是说,LocalDB可以与.Net应用程序一起部署(而不是作为副产品),不需要安装SQL Server(Express)即可工作,但在基本功能(数据类型、SQL语法等)方面与SQL Server完全相同,这与SQL CE不同。@ErikPhilips:感谢您的澄清。我对它的描述可能模糊不清,但你完全正确。它确实提供了更无缝的集成。
     <add name="MusicStoreEntities" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|MvcMusicStore.mdf Catalog=MvcMusicStore" providerName="System.Data.SqlClient"/>