2013-01-04 18 views
1

嗨,我使用實體框架代碼首先是第一次,我有我的App_Data在MVC3應用程序已經創建了一個空數據庫故障產生tables.I 。 這是我所創建的模型:實體框架代碼優先數據庫表不產生對現有數據庫

public class Brand { 
    public int BrandId { get;set; } 
    public string BrandName { get;set; } 
} 

public class Model 
{ 
    public int ModelId { get;set; } 
    public Brand BrandId { get;set; } 
    public Category CategoryId { get;set; } 
    public string ModelName { get;set; } 
} 

public class Category 
{ 
    public int CategoryId { get;set; } 
    public string CategoryName { get;set; } 
} 

這是的DbContext:

public class CarsEntities : DbContext{ 
    public DbSet<Brand> Brands { get;set; } 
    public DbSet<Model> Models { get;set; } 
    public DbSet<Category> Categories {get;set;} 
} 

而且這是在web.config中的connectionString:

<connectionStrings> 
     <add name="CarsEntities" connectionString="Data Source='D:\Projects IDE\Visual Studio\MyWork\Websites\SellCars\SellCars\App_Data\Cars.sdf'" providerName="System.Data.SqlClient" />  
</connectionStrings> 

現在我已經初始化CarsEntities在我的HomeController但似乎沒有表得到generated.What我做錯了什麼?

回答

1

我覺得問題就在你

webcofig 

在這裏,如果你想使用DB像mdf文件數據庫文件 文件特別是在dtasource

 `<add name="CarsEntities" connectionString="data source=.\SQLEXPRESS; Integrated 
Security=SSPI;AttachDBFilename=|yourDirectoryDirectory|\thenameofyourdb.mdf;User 
Instance=true" providerName="System.Data.SqlClient" /`> 
1

首先登場的 - 因爲你使用SQL Server精簡,您需要更改供應商名稱,使用壓縮,而不是SQL Server的:

<add name="CarsEntities" connectionString="Data Source='D:\Projects IDE\Visual Studio\MyWork\Websites\SellCars\SellCars\App_Data\Cars.sdf'" providerName="System.Data.SqlServerCe.4.0" /> 

接下來,你需要在你的Application_Start代碼的地方,它告訴實體框架是否創建數據庫表和頻率重新創建它們使用一個數據庫初始化。在這裏看到:

http://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm

http://msdn.microsoft.com/en-us/data/jj591621.aspx

相關問題