实体框架Code First:"在模型中找不到指定的表'foo'。"

3
我之前从未见过这个错误,而且简单的网络搜索也没有找到相关信息。以下是(我认为)有问题的代码:

没看过这个错误,而且初步的网络搜索几乎没有结果。以下是(我认为)有问题的代码:

this.HasMany(a => a.ListItems).WithRequired()
    .Map(m =>
        {
            m.MapKey("AttributeId");
            m.ToTable("ProductAttributeListItem");
        }
    )
;

以下是完整的错误信息:

指定的表“ProductAttributeListItem”在模型中未找到。请确保正确指定了表名。

该表存在且拼写正确。

缺乏搜索结果让我想到可能是我忽略了某些明显的东西。那么可能是什么?

1个回答

6
如果你想定义实体所指向的表名,你需要在实体上进行定义,而不是在关系映射中进行定义。
modelBuilder.Entity<ListItem>() // or whatever the entity is called
    .ToTable("ProductAttributeListItem");

并且从Map操作中删除m.ToTable


这个可行。奇怪的是,我之前一直在使用SqlExpress,并指定了.ToTable("foo").MapKey("bar")进行映射,一切都正常。但是转到Sql Enterprise后发生了一些变化,它开始抱怨“找不到表”。 - TheVillageIdiot

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