实体框架使用HasOptional加载外键

时间:2014-02-18 13:42:05

标签: c# linq entity-framework

使用它时是否可以通过ForeignKey加载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);

1 个答案:

答案 0 :(得分:3)

您似乎没有指定外键

this.HasOptional(t => t.ProjectManager)
    .WithMany()
    .HasForeignKey(t => t.ProjectManagerId)
    .WillCascadeOnDelete(false);

根据您的错误

  

Contexts.Record_ProjectManager ::多重性与关系“Record_ProjectManager”中角色“Record_ProjectManager_Target”中的引用约束冲突。由于从属角色中的所有属性都是不可为空的,因此主要角色的多重性必须为“1”。

确保您的FK可以为空

public virtual int? ProjectManagerId { get; set; }