如何正确使用两个多对一关系

本文关键字:两个 多对一 关系 何正确 | 更新日期: 2023-09-27 17:58:23

如何正确使用两个多对一关系?

public class Man
    {
        public Man() 
        { 
        }
        [Key]
        public int idMan; { get; set; }
        [Required]
        public string ManName { get; set; }
        public virtual List<Computer> listComputersBought { get; set; }
        public virtual List<Computer> listComputersSold { get; set; }
    }

public class Computer
    {
        public Computer() 
        {
        }
        [Key]
        public int idComputer{ get; set; }            
        public string ComputerName {get;set;}
        [ForeignKey("ManVendor")]
        public int idManVendor{ get; set; }
        public virtual Man ManVendor { get; set; }
        [ForeignKey("ManBuyer")]
        public int idManBuyer{ get; set; }
        public virtual Man ManBuyer { get; set; }
    }

我正试图建立两种多对一的关系。这样做,我得到以下错误:

类型"Project1.Models.Computer"的属性"idManBuyer"的ForeignKeyAttribute无效。在依赖类型"Project1.Models.Computer"上找不到导航属性"ManBuyer"。Name值应该是有效的导航属性名称。

请问如何解决这个问题?

有什么绝妙的主意吗?

非常感谢!

如何正确使用两个多对一关系

这样做:

public class Man
    {
        public Man() 
        { 
        }
        [Key]
        public int idMan; { get; set; }
        [Required]
        public string ManName { get; set; }
        public virtual ICollection<Computer> listComputersBought { get; set; }
        public virtual ICollection<Computer> listComputersSold { get; set; }
    }

public class Computer
    {
        public Computer() 
        {
        }
        [Key]
        public int idComputer{ get; set; }            
        public string ComputerName {get;set;}
        [ForeignKey("ManBuyer")]
        public int idMan{ get; set; }
        public virtual Man ManBuyer { get; set; }
    }