1

我搜索範圍廣泛,通過教程和技巧,但它只是不會工作!ASP.NET EF5代碼優先不創建SQL Server CE數據庫

EF 5代碼優先不生成我的SQL Server CE 4數據庫文件。

我有一個ASP.NET Web應用程序,我想通過使用代碼優先的方法生成數據庫。

這裏是我的模型類:

public class Class 
    { 
     [Key] 
     public int id { get; set; } 
     public bool isLecture { get; set; } 

     public int courseId { get; set; } 
     public virtual Course course { get; set; } 
     public int teacherId { get; set; } 
     public virtual Teacher teacher { get; set; } 
    } 

    public class Course 
    { 
     [Key] 
     public int id { get; set; } 
     public string name { get; set; } 
     public int semester { get; set; } 
    } 

    public class Teacher 
    { 
     public int id { get; set; } 
     public string name { get; set; } 
     public string lastName { get; set; } 
    } 

這裏是上下文:

public class MyContext : DbContext 
    { 
     public DbSet<Class> Classes { get; set; } 
     public DbSet<Teacher> Teachers { get; set; } 
     public DbSet<Course> Courses { get; set; } 
    } 

這裏是web.config連接字符串:

<add name="MyContext" 
     connectionString="Data Source=|DataDirectory|\MyContext.sdf" 
     providerName="System.Data.SqlServerCe.4.0" /> 

這是global.asax.cs

protected void Application_Start() 
    { 
     Database.SetInitializer<MyContext> 
      (new DropCreateDatabaseIfModelChanges<MyContext>()); 

     ... 
    } 

我試過w /和w/o這些行global.asax.cs和W /和無連接字符串。

應用程序加載和工作,但數據庫文件只是沒有創建。我試圖自己創建.sdf文件,所以它可以由EF代碼填充,但它仍然是空的。

該項目是ASP.NET MVC 4 HotTowel模板所做的,如果這意味着什麼,我使用Visual Studio 2012

解決:

需要該代碼在global.asax.cs

MyContext context = new MyContext(); 
    context.Database.Initialize(true); 

回答

0

這對我的作品 - 你需要連接工廠...

<configSections>... 
</configSections> 
<entityFramework> 
    <defaultConnectionFactory 
     type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework"> 
     <parameters> 
      <parameter value="System.Data.SqlServerCe.4.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 
+0

仍然沒有數據庫文件。在數據連接下,服務器資源管理器與MyContex.sdf的鏈接已斷開,當我嘗試打開它時,它會顯示: '找不到數據庫文件。檢查數據庫的路徑。 [數據源= c:\ ...路徑... \ MyProject \ SekretarskiModul \ App_Data \ MyContext.sdf]' – Sljux 2013-04-25 14:51:17

相關問題