为什么 Database First EF 会跳过映射某些表?

发布于 2024-11-09 23:48:37 字数 170 浏览 0 评论 0原文

我正在使用 Entity Framework 4 和 Database First 绑定,并且 EF 不会为我的一些表生成实体。我没有收到任何错误,并且无论我从设计界面上的“从数据库更新模型”弹出菜单中选择要生成的表多少次,模型中仍然缺少相同的表。

我在向导中没有收到任何错误。它们只是不会生成。有什么线索吗?

I'm using Entity Framework 4 and with a Database First binding, and EF is not generating the entities for a few of my tables. I'm not getting any errors, and no matter how many times I select the tables to generate from the "Update Model from Database" popup menu on the design surface, the same tables are still missing from the model.

I get no errors in the wizard. They just don't get generated. Any clues?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

时光病人 2024-11-16 23:48:37

EF 需要表上有主键。 EF 不会映射无法找到或派生主键的表。如果所有列都可以为空,则不能假定主键。如果一列或多列不可为空,EF 显然会为表派生主键。

EF requires a primary key on the table. EF will not map tables for which it can't find or derive a primary key. If all columns are nullable, it can't assume a primary key. If one or more columns are not nullable, EF will evidently derive a primary key for the table.

倚栏听风 2024-11-16 23:48:37

EF 将忽略没有主键的表。

EF will ignore table without primary keys.

戒ㄋ 2024-11-16 23:48:37

我能想到的选项:

  • 您是否选中了这些表格旁边的框?

  • 您之前是否添加了它们,然后删除了它们的实体,但保留了表的缓存?

  • 如果是这样,您可以从实体浏览器窗口中删除它们并重新添加它们
    或者手动添加实体并在映射窗口中定义它们映射到的表。

  • 也许表被分类为关系而不是实体?

  • 您可以手动添加实体并在映射窗口中选择它们映射到的表。

Options I can think of:

  • Did you check the box next to those tables?

  • Did you previously add them, then delete their entities but keep the cache of the tables?

  • If so you can remove them from entity browser window and re-add them
    or manually add entities and define the table they map to in mappings window.

  • Perhaps tables were classified as relations instead of entities?

  • You can manually add the entities and choose the table they map to in mappings window.
白况 2024-11-16 23:48:37

实际上,就我而言,它不起作用,因为我使用 Hierarchyid 字段作为主键,而 EF 不适用于此字段类型,因此,它没有导入表,因为需要有效的 PK。

Actually, in my case, it doesn't work because I was using a hierarchyid field as a primary key and EF doesn't work with this field type, so, it didn't import the table, because a valid PK is required.

撑一把青伞 2024-11-16 23:48:37

一种可能性是当您使用具有某些不同字段类型的表时,如 SQL Server 中的层次结构。

A possibility is when you're using tables with some different field types, as hierarchy in SQL Server.

风蛊 2024-11-16 23:48:37

如果没有主键表,在 EF 上会自动跳过,否则您会将值修复为非空。

Without Primary Key Tables where Skip Automatically on EF, OtherWise You Fix a Value as Not Null.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文