2014-05-20 38 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

相关问题