我正在运行下面的代码来学习代码优先的工作流程。代码完美地编译和运行。我认为创建数据库是因为我在运行代码时可以看到以前的条目。但我在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; }
}
}
答案 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替换为您计算机上的值