|
1
5
首先,应该清楚的是,它不是来自所显示的“简单”(但显然不完整)模型。
正如在报告中所解释的那样 Relationships - Single Navigation Property EF核心文档主题:
附带的示例显示
所有EF核心运行时行为都基于模型元数据。无论数据库的结构是什么,更重要的是EF Core认为它是基于模型类、数据注释和流畅配置的,以及它是否与数据库模式匹配。更简单的检查方法是生成迁移并检查它是否与数据库模式匹配。
|
|
|
2
2
我对这个问题的理解是,EF创建了一个
Shadow Property
在模型类中,可能通过在
我还觉得EFCore使用的ModelSnapshot和数据库中表的真实状态(可能是挂起的迁移)不匹配。仔细检查,你的情况如何
|
|
|
3
2
我的猜测是,您还拥有一个注册在上下文中的“接口”表,该表包含对InterfaceType的引用。接口将声明一个InterfaceTypeId字段,但是对于EF,如果您使用的是带有ForeignKey的HasOne,请检查您是否意外地指定了如下内容:
对于具有InterfaceType的接口,其映射更像:
这可能潜入了您的其他关联实体之一。通常这些都是打字错误,自动完成选择了错误的类型,你没有注意到。如果该映射存在于任何类上,EF将期望在InterfaceType上找到InterfaceId列。搜索
|
|
|
4
1
其次,您是否对模型应用了任何更改,并忘记将其持久化到数据库中,因为可能是列在类中是正确的,但在数据库中不是正确的。这是我在使用代码模型时经常忘记做的事情。 以下是有关FromSQL的一些附加信息:- https://docs.microsoft.com/en-us/ef/core/querying/raw-sql https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/
|
|
|
5
0
数据库生成属性
|
|
|
6
0
为了检查是否有一种方法可以复制,我创建了一个样本
我试图尽可能地遵循您的代码,试图重现这个问题,其中一些内容我必须更改。
我创建了:
执行以下命令
复制了记录检索代码,从查询中删除了“[Interfaces]”,并调试了下面的代码。
我能够从数据库中检索数据。
|
|
7
0
以下几点对我很有用: 插入一些数据:
|
|
|
Andrus · 如何从syslog中删除计算机和进程名称以及进程ID 1 年前 |
|
|
Vasu V · 将foreach转换为select语句 2 年前 |
|
|
Inglonias · 初始化集合的语法是什么? 2 年前 |