2011-01-24 67 views
0

我一直在使用EF 4 CTP5並以下scottgu博客文章:http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspxEF CTP5自動創建表的SQL Server 2005

基本上我想模型生成表對我來說,如果缺少它。

在我的情況下,它抱怨說有一個無效的數據庫對象,那是因爲我還沒有一個表。我正在使用SQL Server 2005,而博客提到了sql express或ce。

我想模式創建表,是隻有sql express和CE的功能?

在此先感謝

回答

3

「基本上我想的模型來生成對我的表,如果它缺少」

那種情況下,目前不支持使用CTP5但是應該可以做這樣的在(近)的未來的事情:http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx

目前只有以下2個初始化策略的支持:

// always recreate the database 
DbDatabase.SetInitializer(new DropCreateDatabaseAlways<MyDbContext>()); 

// recreate the database if any changes to the model are detected. 
DbDatabase.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDbContext>()); 

還應當指出的是,EF創建整個數據庫,而不只是表,所以你不必自己創建數據庫。

+0

謝謝史蒂芬, 所以,只是爲了澄清,如果我調用DbDatabase.SetInitializer說我的global.asax然後它會創建數據庫和表,即使我與SQL Server 2005? – DotnetShadow 2011-01-24 11:42:52