C# 与EF和MVC5的多个空一对多关系

C# 与EF和MVC5的多个空一对多关系,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我需要创建从一个实体到多个其他实体的多个一对多和多对多关系 实体是可以与潜在客户、客户或机会相关的呼叫,但我在呼叫实体中的何处创建关系: public class Call { public int Id { get; set; } public int Lead_Id? { get; set; } [ForeignKey("Lead_Id")] public virtual Lead Lead { get; set; } public i

我需要创建从一个实体到多个其他实体的多个一对多和多对多关系

实体是可以与潜在客户、客户或机会相关的呼叫,但我在呼叫实体中的何处创建关系:

public class Call 
{
    public int Id { get; set; }

    public int Lead_Id? { get; set; }

    [ForeignKey("Lead_Id")]
    public virtual Lead Lead { get; set; }    

    public int Client_Id? { get; set; }

    [ForeignKey("Client_Id")]
    public virtual Client Client { get; set; }    

    public int Opportunity_Id? { get; set; }

    [ForeignKey("Opportunity_Id")]
    public virtual Opportunity Opportunity { get; set; }    
}
在数据库表中,我为每个关系创建一列


或者我是否创建了一个用于多对多关系的外部表,但在本例中,我使用一对多关系,因为每次调用只使用一个关系?

您是先使用DB还是先使用代码?具体问题是什么?为什么要使用多对多?您如何在DB中实现FKs,而不是使用列来实现?请弄清楚你想做什么,你的问题是什么,然后重写问题。@MatteoSganzetta您好,谢谢,我创建了数据库,然后手动创建了模型。@JotaBe您好,谢谢。我认为这是一个最佳实践问题,在充满空值的表中添加列,或者为每个列添加一个关系表。因此,如果您希望将现有DB与POCO类一起使用(我从您发布的代码中猜出来),我假设您选择先使用针对现有DB的代码,如本教程中所述(此选项从实体框架6.1开始提供)