构造函数中的EF关系



我得到错误;

无法在Icollection中隐式转换类型销售

当我这样做时,我已经在一些示例中看到了它,并且可以这样做。

Sale sale= new Sale(){ Id = 1 };
Service service = new Service() { Name= "SomeService",Sales=sale}; //I can't assign sale

public class Service: EntityBase
{
    //public Service()
    //{
    //    Sales= new HashSet<Sale>();
    //}
    public string Name{ get; set; }
    public virtual ICollection<Sale> Sales{ get; set; }
}

我该如何解决?我不想这样做:service.Sales.add(fact),如果有另一种方式

如果您非常反对使用.Add并想将一个或多个Sale实例传递到Service实例,并将它们添加到Sales集合中或更多的 Sale实例。

public class Service: EntityBase
{
    public Service() // empty constructor needed for EF
    {}
    public Service(params Sale[] sales)
    {
      Sales = new List<Sale>(sales);
    }
    public string Name{ get; set; }
    public virtual ICollection<Sale> Sales{ get; set; }
}
// example with 2 sales
Sale sale1 = new Sale(){ Id = 1 };
Sale sale2 = new Sale(){ Id = 2 };
Service service = new Service(sale1,sale2) { Name= "SomeService" };

将空构造函数留在适当的位置,因为它由EF。

您在这里说的是sale = list();

列出销售列表,向其添加销售,然后在构造商中说销售=您制作的销售清单。

Sale sale = new Sale(){ Id = 1 };
List<Sale> sales = new List<Sale>();
sales.Add(sale);
Service service = new Service() { Name = "Service", Sales = sales }; 

最新更新