2013-08-16 89 views
0

我有以下問題。Code First和存儲過程

我嘗試執行存儲過程,而在使用的Code First模型MVC 4應用程序返回的表與實體框架5。

首先,我有一個Entity稱爲Genres

public class Genres 
{ 
    [Key] 
    public string Genre { get; set; } 
    public int Artists { get; set; } 
    public int Albums { get; set; } 
} 

然後,我有一個DbContext

public class DbContext : DbContext 
{ 
    public DbSet<Genres> Genres { get; set; } 
} 

然後,我執行與SqlQuery我的存儲過程:

 var DbContext = new DbContext(); 

     ViewBag.Genres = DbContext.Genres.SqlQuery("psy_trance_fm_select_genres"); 

一切正常,b我有一個問題。

當我執行我的存儲過程實體框架5在我的數據庫中創建兩個表。第一個是__MigrationHistory,第二個是Genres

我不需要Genres表進行創建,因爲我不使用它。

請幫幫我吧。謝謝。

PS - 我寫我的代碼與本文的幫助:http://msdn.microsoft.com/en-us/data/jj592907.aspx

回答

1

如果您在使用存儲過程,那麼你不應該使用代碼優先的策略進行。

您應該使用數據庫優先策略,因爲具有存儲過程意味着存在數據庫。

而且你Genre表被創建,因爲這是代碼優先那樣 - 它創建的表從數據庫的代碼創建的實體。

另一方面,數據庫優先策略會導入您現有的數據庫模式並從中創建實體。包括強類型的存儲過程。

Here是數據庫地介紹一下優先策略與實體框架的概念在MSDN上的視頻教程+。

+0

感謝您的評論,juhan_h。你能告訴我,我可以閱讀更多關於不同模型的信息,特別是Database-First模型。謝謝! –

+0

我添加了指向我的答案的鏈接,該鏈接指向您在MSDN上的教程。希望能幫助到你。 –

+0

還有一個問題。用EF Code-First模型和LINQ重寫所有的SP是否是好主意?謝謝! –