2014-05-20 66 views
5

我們終於擺脫了事情,以便我們可以先開始使用代碼。我可以使用Code First Migrations而不使用表名稱嗎?

當我運行「Enable-Migrations」時,它會在名稱中創建一個InitialCreate文件。
(like here:http://msdn.microsoft.com/en-us/data/jj591621.aspx#enabling

該文件具有複數數據庫表名而不是單數。

我做這行我initiazlizer,這是正確的:

modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 

但正在與遷移創造了所有多元化的名字的文件。

當我添加一個遷移時,它變得很煩人,它所做的第一件事就是刪除數據庫中的每個複數表並將它們重新添加爲單數。

我可以將參數傳遞給「啓用遷移」命令或其他東西來告訴它不復數嗎?

回答

3

此行爲已得到修復,我無法使用EF 6.1.0重現此行爲。我使用初始化程序首先創建了數據庫,而不是運行Enable-Migrations(當然OnModelCreating()已包含刪除PluralizingTableNameConvention的行)。生成的遷移(其名稱中包含InitialCreate)生成以單數命名的表。所以如果你能夠更新EF,你的問題將會消失。

如果不是:您是否嘗試使用Table屬性覆蓋表單名稱的單數形式?至少生成的遷移代碼確實尊重它(我沒有使用早於6.1.0的EF版本進行檢查)。

[Table("MyEntity")] 
public class MyEntity 
{ 
    // .. your properties go here. 
} 
+0

我嘗試更新到6.1之前,我嘗試了這一點,但它可能是我沒有更新所有項目。我將再次嘗試並報告 – thepaulpage

+0

如果您使用EF 6.1,它是否也適用於您? – andyp

+0

我還沒有機會嘗試它。我們現在已經開始行動了,但我知道我們會在某個時候回來,當我們再次嘗試時,我會回來並更新。 – thepaulpage

相關問題