执行Code-First代码后,数据库不会出现

时间:2014-06-24 10:29:03

标签: c# entity-framework ef-code-first

我正在运行下面的代码来学习代码优先的工作流程。代码完美地编译和运行。我认为创建数据库是因为我在运行代码时可以看到以前的条目。但我在Microsoft SQL Server Management Studio上看不到数据库。当我刷新时,新的数据库和表。我可以在Visual Studio上的Server Explorer上看到数据库。这是为什么?我怎样才能看到创建的数据库?这是代码:

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; }
    }

}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您应该明确指定数据库的连接字符串,然后您将知道实际连接的位置:

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替换为您计算机上的值