C# 数据库在执行第一个代码后不显示

C# 数据库在执行第一个代码后不显示,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我正在运行下面的代码来学习代码优先工作流。代码可以完美地编译和运行。我认为创建数据库是因为在运行代码时可以看到以前的条目。但是我在MicrosoftSQLServerManagementStudio上看不到数据库。当我刷新时,新的数据库和表将被删除。我也可以在VisualStudio的服务器资源管理器上看到数据库。为什么呢?如何查看创建的数据库?代码如下: using System.Data.Entity; using System; using System.Collections.Gener

我正在运行下面的代码来学习代码优先工作流。代码可以完美地编译和运行。我认为创建数据库是因为在运行代码时可以看到以前的条目。但是我在MicrosoftSQLServerManagementStudio上看不到数据库。当我刷新时,新的数据库和表将被删除。我也可以在VisualStudio的服务器资源管理器上看到数据库。为什么呢?如何查看创建的数据库?代码如下:

using System.Data.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CodeFirstNewDatabaseSample
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var db = new BloggingContext())
            {
                Console.WriteLine("enter a new name for a new blog");
                var name = Console.ReadLine();

                var blog = new Blog { Name = name};
                db.Blogs.Add(blog);
                db.SaveChanges();

                var query = from b in db.Blogs orderby b.Name select b;

                Console.WriteLine("all blogs in database : ");

                foreach(var item in query)
                {
                    Console.WriteLine(item.Name);
                }

                Console.ReadLine();

            }

        }
    }


    public class Blog
    {
        public int BlogId { get; set; }
        public string Name { get; set; }
       public virtual List<Post> Posts {get; set;}

    }

    public class Post
    {
        public int PostID { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }

        public int BlogId { get; set; }
        public virtual Blog Blog { get; set; }

     }



    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }
    }

}

检查配置文件,应该有一个连接字符串条目。如果这指向您的sql server实例,那么您将能够在sql server management studio中看到该数据库


如果连接字符串未指向您的sql server实例,则将在本地创建数据库,请检查您的项目文件夹。

您应该明确指定到数据库的连接字符串,这样您就可以知道连接的实际位置:

public class BloggingContext : DbContext
{
    public BloggingContext() : base("ConnectionStringName")

    // ...
}
并将连接字符串添加到配置文件:

<connectionStrings>
    <add name="ConnectionStringName"
    providerName="System.Data.SqlClient"
    connectionString="Server=ServerName; Database=DatabaseName;Integrated Security=SSPI" />
</connectionStrings>

用计算机上的值替换ServerName和DatabaseName

是配置文件App.config的名称吗?如果使用web应用程序,则该文件为App.config;如果使用web应用程序,则该文件为web.config