我是一個初學者的實體框架,我堅持不可能讓我的代碼生成數據庫。EF4代碼第一個數據庫生成
我的背景是這樣的:
public class ChatContext : DbContext
{
public ChatContext()
: base("ChatContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ChatRoom>()
.Map(c => c.ToTable("chat_rooms"));
modelBuilder.Entity<ChatUser>()
.HasMany(u => u.Rooms)
.WithMany(r => r.Users)
.Map(c => c.ToTable("chat_users"));
modelBuilder.Entity<ChatUser>()
.HasMany(u => u.ConnectedUsers);
base.OnModelCreating(modelBuilder);
}
public DbSet<ChatUser> Users { get; set; }
public DbSet<ChatRoom> Rooms { get; set; }
public DbSet<ChatMessage> Messages { get; set; }
}
而且我的Global.asax:
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
protected void Application_Start()
{
Database.SetInitializer<ChatContext>(new DropCreateDatabaseIfModelChanges<ChatContext>());
RegisterRoutes(RouteTable.Routes);
}
}
我的連接字符串中的Web.config:
<connectionStrings>
<add name="ChatContext" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=ChatContext;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
任何人都可以點在哪裏問題在哪裏?當我構建項目時,不會返回任何錯誤。 Global.axax中的一個斷點顯示它碰到了Application_Start()。
你檢查了你的本地實例的SQL服務器來查看是否創建數據庫? – Shyju 2012-04-18 18:03:39
是的,我做到了。甚至沒有創建數據庫。 – janhartmann 2012-04-18 18:04:29
我是否需要實際調用/修改其中一個表以初始化數據庫創建? – janhartmann 2012-04-18 18:05:20