【问题标题】:Can I use Code First Migrations without pluarized table names?我可以在没有 pluarized 表名的情况下使用 Code First 迁移吗?
【发布时间】:2014-05-20 18:15:13
【问题描述】:

我们终于把事情搞定了,这样我们就可以先开始使用代码了。

当我运行“Enable-Migrations”时,它会创建一个名称为 InitialCreate 的文件。
(喜欢这里:http://msdn.microsoft.com/en-us/data/jj591621.aspx#enabling

该文件具有复数数据库表名而不是单数。

我的 initiazlizer 中确实有这一行,这是正确的:

modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

但是正在使用迁移创建的文件具有所有复数名称。

当我添加迁移时,这变得很烦人,它所做的第一件事就是删除数据库中的每个复数表并将它们重新添加为单数。

我可以将参数传递给“启用迁移”命令或告诉它不要复数吗?

【问题讨论】:

    标签: ef-code-first entity-framework-migrations


    【解决方案1】:

    此行为已修复,我无法使用 EF 6.1.0 重现它。我首先使用初始化程序创建了数据库,然后运行Enable-Migrations(当然OnModelCreating() 已经包含删除PluralizingTableNameConvention 的行)。生成的迁移(名称中带有InitialCreate)会生成以单数形式命名的表。因此,如果您能够更新 EF,您的问题就会消失。

    如果不是:您是否尝试使用Table 属性以单数形式覆盖表名?至少生成的迁移代码确实尊重它(虽然我没有检查过比 6.1.0 更旧的 EF 版本)。

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

    【讨论】:

    • 在尝试此操作之前,我确实尝试更新到 6.1,但可能是我没有更新所有项目。我会再试一次并报告
    • 我还没有机会尝试。我们现在继续前进,但我知道我们会在某个时候回来,当我们再次尝试时我会回来更新。
    猜你喜欢
    • 1970-01-01
    • 2020-12-06
    • 2017-12-31
    • 2019-01-31
    • 2016-08-11
    • 2021-08-10
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多