如何在WebApi中使用Entity Framework和代码优先来创建数据库

时间:2017-10-10 10:05:56

标签: asp.net-web-api entity-framework-6

新手在这里。

问题:

当我从VS2017的菜单中打开SQL Server对象资源管理器时,我找不到名为UserRegistryDB的数据库。

请帮忙。我做了以下。

  1. 我已经安装了SQL Server 2017 EXPRESS

  2. 我在项目中添加实体框架以供参考。

  3. 我在UserDBContext.cs文件夹

    中创建了一个班级Model
    public class UserDBContext : DbContext
    {      
        public DbSet<User> Users { get; set; }
    }
    
  4. 我在Model文件夹

    中添加了一个模型类
    public class User
    {
            public int Id { get; set; }
            public string emailID { get; set; }
            public string AppName { get; set; }
            public string SessionToken { get; set; }
    }
    
  5. 我已将此添加到web.config

    <connectionStrings>
        <add name="UserDBContext"
             connectionString="server=.; database= UserRegistryDB; integrated security = true;"
             providerName ="System.Data.SqlClient"/>
      </connectionStrings>
    
  6. 我构建我的项目并运行它;没有编译错误,建立成功。

  7. 我需要帮助解决这个问题:

    使用server =的连接字符串有何不同? ,server =(local)?或server =(localdb)

    connectionString="server=. ; database= UserRegistryDB; integrated security = true;"
    
    connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=TestDatabase;Integrated Security=True"
    

    由于

1 个答案:

答案 0 :(得分:0)

.(local)指的是已安装的默认实例 - 没有任何特定实例名称的实例(将在SQL Server配置管理器中显示为MSSQLSERVER )。这可以是SQL Server的任何版本 - Express,Web,Standard,Enterprise,Developer等。

(localdb)指的是已安装的SQL Server Express LocalDB 实例 - 这是一个面向开发人员的SQL Server Express版本,未作为Windows服务安装,一直运行,但只在Visual Studio或应用程序运行时启动并运行