首先使用EF代码时不生成LocaDb SQL Server Express数据库

时间:2015-02-09 03:27:31

标签: entity-framework

我只是按照说明运行程序。请参阅以下说明:

Code First Migrations instruction

Mode.cs中的内容:

using System.Data.Entity; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.Data.Entity.Infrastructure; 

namespace MigrationsDemo 
{ 
    public class BlogContext : DbContext 
    { 
        public DbSet<Blog> Blogs { get; set; } 
    } 

    public class Blog 
    { 
        public int BlogId { get; set; } 
        public string Name { get; set; } 
    } 
}

Program.cs中的内容:

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

namespace MigrationsDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var db = new BlogContext())
            {
                db.Blogs.Add(new Blog { Name = "Another Blog " });
                db.SaveChanges();

                foreach (var blog in db.Blogs)
                {
                    Console.WriteLine(blog.Name);
                }
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey(); 
        }
    }
}

说明现在运行该程序,我将看到为您创建了一个MigrationsCodeDemo.BlogContext数据库。

同时,指令说:

如果安装了SQL Server Express(包含在Visual Studio 2010中),则会在本地SQL SErver Express实例(.\SQLEXPRESS)上创建数据库。

如果未安装SQL Server Express,则代码优先将尝试使用LocalDb((localdb)\v11.0) - Visual Studio 2012中包含LocalDb。

但在运行此程序后,我看不到在SQL Server对象资源管理器中创建MigrationsCodeDemo.BlogContext,我只看到数据库文件夹下的系统数据库,命令行显示:

Another Blog
Another Blog
Another Blog
Another Blog
Press any key to exit...

因为我为这个程序运行了4次,所以有4行&#34;另一个Blog&#34;出现在命令行中。

有谁能告诉我为什么代码没有为我生成本地数据库?

非常感谢。

0 个答案:

没有答案