实体框架不显示数据库

时间:2014-03-12 17:31:43

标签: asp.net entity-framework-4 sql-server-2008-r2 code-first

使用ASP.NET MVC 3项目使用Entity Framework 4.1的Code First功能。

但是,数据库(SQL Server 2008 R2)不会在应用程序启动时自动创建表映射。关于如何做到这一点的任何想法?

using System;
using System.Data.Entity;
namespace MvcMovie.Models { 
public class Movie { 
    public int ID { get; set; } 
    public string Title { get; set; } 
    public DateTime ReleaseDate { get; set; } 
    public string Genre { get; set; } 
    public decimal Price { get; set; } 
}

还有这个数据库上下文类

public class MovieDBContext : DbContext
{
    public DbSet<Movie> Movies { get; set; }
} 
}

在global.asax文件中

protected void Application_Start()
{
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
}
}

请帮忙?我是初学者?即使你可以为asp.net推荐一些阅读材料,它会有很大的帮助吗?

1 个答案:

答案 0 :(得分:0)

这是good overview。您可以使用配置条目:

<entityFramework>
  <contexts>
    <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
      <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
    </context>
  </contexts>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
    <parameters>
      <parameter value="v11.0" />
    </parameters>
  </defaultConnectionFactory>
  <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
</entityFramework>

或通过code as mentioned here

进行设置
Database.SetInitializer(new DropCreateDatabaseAlways<BlogContext>());
using (var db = new BlogContext())
{
    db.Database.Initialize(false);
    ...
}