C# 实体框架加载外键(可选)
使用外键时是否可以加载C# 实体框架加载外键(可选),c#,linq,entity-framework,C#,Linq,Entity Framework,使用外键时是否可以加载ProjectManager this.HasOptional(t => t.ProjectManager) .WithMany() .WillCascadeOnDelete(false) 我尝试执行以下操作,但ProjectManager仍然返回为null var entities = _context.EodRecords .Include(r =>r.ProjectManager)
ProjectManager
this.HasOptional(t => t.ProjectManager)
.WithMany()
.WillCascadeOnDelete(false)
我尝试执行以下操作,但ProjectManager仍然返回为null
var entities = _context.EodRecords
.Include(r =>r.ProjectManager)
.Include(r => r.RecordLanguages)
.Include(r => r.Department);
您似乎没有指定外键
this.HasOptional(t => t.ProjectManager)
.WithMany()
.HasForeignKey(t => t.ProjectManagerId)
.WillCascadeOnDelete(false);
基于你的错误 Context.Record\u ProjectManager::多重性与关系“Record\u ProjectManager”中角色“Record\u ProjectManager\u Target”中的引用约束冲突。因为从属角色中的所有属性都不可为null,所以主体角色的多重性必须为“1” 确保您的FK可为空
public virtual int? ProjectManagerId { get; set; }
为什么这会有不同?可能甚至没有
ProjectManagerId
,OP可能会选择独立关联(尽管不推荐)。@GertArnold我的假设是OP正在使用FKs,但只是没有指定关系。在他的情况下,也可能是该属性没有声明为virtual
(不知道,因为他没有给我们看他的代码)。同时显示完整的查询,因为您选择的内容会影响Include
是否执行任何操作