我收到错误;
无法隐式转换ICollection中的类型Sale
当我这样做时,我已经在一些例子中看到了它,并且可以这样做。
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)
,如果有另一种方式
答案 0 :(得分:1)
如果您非常反对使用.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使用它。
答案 1 :(得分:0)
你在这里说的是Sale = List();
制作销售清单,向其添加销售,然后在构造函数中说出Sales =您所做的销售清单。
Sale sale = new Sale(){ Id = 1 };
List<Sale> sales = new List<Sale>();
sales.Add(sale);
Service service = new Service() { Name = "Service", Sales = sales };