在抽象父级EF Code First上包含对象列表

时间:2016-11-09 15:04:10

标签: c# entity-framework

我有一个名为abstract的{​​{1}}类,如下所示:

Business

从上面继承的一个类是public abstract class Business { public int Id { get; set; } public string Name { get; set; } public string TaxNumber { get; set; } public string Description { get; set; } public string Phone { get; set; } public string Website { get; set; } public string Email { get; set; } public bool IsDeleted { get; set; } public virtual IEnumerable<Address> Addresses { get; set; } public virtual IEnumerable<Contact> Contacts { get; set; } } 类。看起来像这样:

Supplier

一切都很好,但当我来为我的MVC前端寻找供应商时,我想包括与供应商相关联的public class Supplier : Business { public virtual ICollection<PurchaseOrder> PurchaseOrders { get; set; } }

我试过了:

Addresses

但它不起作用,它表示public Supplier GetSupplier(int id) { return _context.Businesses.Include(b => b.Addresses).OfType<Supplier>().SingleOrDefault(x => x.Id == id); } 上没有Addresses属性。

2 个答案:

答案 0 :(得分:2)

如果您将集合从IEnumerable更改为ICollection,您的代码应该可以正常工作

答案 1 :(得分:0)

您必须实现覆盖,因为基类是抽象的。

来自MSDN

&#34;标记为抽象或包含在抽象类中的成员必须由派生自抽象类的类实现&#34;

或者删除abstract关键字,以便默认使用base。

另一种方法是删除基础并使用接口,除非您有使用抽象类的特定原因。