C# 如何在实体框架中定义非常规的(?)一对多关系

C# 如何在实体框架中定义非常规的(?)一对多关系,c#,entity-framework,relationship,C#,Entity Framework,Relationship,我需要使用一个有两个表的数据库,Proprietaires和Certification Proprietaires有以下列: 身份证 身份认证 名字 认证包含以下列: 身份证 普利泰里德酒店 名字 所以我定义了我的Proprietaire实体如下: public class Proprietaire { public int Id { get; set; } public int IdCertification { get; set; } public str

我需要使用一个有两个表的数据库,
Proprietaires
Certification

Proprietaires
有以下列:

  • 身份证
  • 身份认证
  • 名字
认证
包含以下列:

  • 身份证
  • 普利泰里德酒店
  • 名字
所以我定义了我的
Proprietaire
实体如下:

public class Proprietaire
{
    public int Id { get; set; }
    public int IdCertification { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Certification> Certifications { get; private set; } = new List<Certification>();
}
我的问题是,我不知道如何定义关系以使其具有以下行为:

当我访问我的
Certification
实体的
Proprietaire
属性时,我需要获取
Proprietaire
其中
Proprietaire.Id==Certification.ProprietaireId
。这部分是有效的

但是,当我访问我的
Proprietaire
实体的
认证
(列表)属性时,我需要获得所有认证

where Certification.ProprietaireId == Proprietaire.IdCertification
我甚至不知道EF是否可能。但是数据库的结构不是很好,但是我需要处理它

有解决办法吗


谢谢

如果您已有数据库,您是否考虑过先使用数据库?EF6支持数据库优先使用代码生成工具,然后生成等效的代码优先实体类。你用的是EF6还是EFCore?我用的是EF6。我不首先使用数据库,因为在我开始工作之前,这个项目已经存在了,所有的事情都是先用代码完成的。但即使是在Database first中,数据库中也并没有定义约束,所以这并没有帮助。无怨无悔^^
where Certification.ProprietaireId == Proprietaire.IdCertification