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