entity framework codefirst 不能创建数据库表。

2025-03-20 08:13:52
推荐回答(1个)
回答1:

  使用Entity Framework CodeFirst模式创建新数据库
  开发环境
  Visual Studio 2010 SP1
  SQL Server Compact 4.0
  演练步骤
  打开Visual Studio;
  新建Console应用程序Known.EFDemo;
  创建Blog模型;

 

  public class Blog
  {
  public int Id { get; set; }
  public string Name { get; set; }
  public List Posts { get; set; }
  }
  
  public class Post
  {
  public int Id { get; set; }
  public string Title { get; set; }
  public string Content { get; set; }
  }
  

  右击项目->管理NuGet程序包,搜索Entity Framework并安装;或使用程序包管理器控制台运行命令Install-Package EntityFramework;
  创建BlogContext;
  
  public class BlogContext : DbContext
  {
  public DbSet Blogs { get; set; }
  }
  

  修改App.config文件,配置ConnectionString和SQL Server Compact数据提供者工厂;

  

  
  
  

  
  
  
  
  

  

  

  修改Program并运行,成功后,可以在服务器资源管理器中查看自动生成的表结构及数据。

  

  using (var context = new BlogContext())
  {
  Console.WriteLine("请输入博客名称:");
  var name = Console.ReadLine();
  var blog = new Blog { Name = name };
  blog.Posts = new List();
  
  Console.WriteLine("请输入随笔标题:");
  var title = Console.ReadLine();
  Console.WriteLine("请输入随笔内容:");
  var content = Console.ReadLine();
  blog.Posts.Add(new Post { Title = title, Content = content });
  
  context.Blogs.Add(blog);
  context.SaveChanges();
  
  Console.WriteLine("保存成功!");
  }
  

  当模型改变时,可以使用命令自动迁移数据库,配置命令:Enable-Migrations –EnableAutomaticMigrations ;更新命令:Update-Database –Verbose 。