EF6 Code First复数形式的表格无效的对象名称

3

无论我做什么,EF6都会将我的Code First表名复数化。我得到的错误是找不到复数化的表{"无效的对象名称'dbo.TestStats'."}。数据库中的表是单数形式的dbo.TestStat。

我尝试通过以下方式删除约定:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

我还将它映射到单数表名

    public TestStatMap()
    {
        // Primary Key
        this.HasKey(t => t.TestStatId);

        this.ToTable("TestStat");
我甚至尝试将此添加到OnModelCreating重写中。
modelBuilder.Entity<TestStat>().ToTable("TestStat");

这是我试图映射的表格,由EF Power Tools生成。我还可以尝试什么或者我漏掉了什么吗?

CREATE TABLE [dbo].[TestStat] (
[TestStatId] [int] NOT NULL IDENTITY,
[SeasonID] [int],
[TeamID] [int],
CONSTRAINT [PK_dbo.TestStat] PRIMARY KEY ([TestStatId])

)


1
你尝试过使用Table属性吗?[Table("TestStat")] - Lokesh Suthar
1
发现了自己的错误。我有两个上下文类,一个继承另一个用于存储库,并且我在基本上下文中有下面的代码,当我将它移动到派生的上下文中时,它现在可以工作。modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); - Shiloh
请将此作为您的答案。 - Corey Adler
2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
2

我找到了自己的错误。我有两个Context类,一个继承另一个用于存储库,并且我在基本上下文中有下面的代码,当我将其移动到派生的上下文中时,它现在可以工作。

modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

-1

如果使用 .net 4.5,请从 app.config/web.config 中删除此行。

 <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup>

@anthony,你从代码块中编辑了文本,但是你将其留作了片段 :/ - user1228

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,