簡體   English   中英

包括抽象父EF代碼優先對象的列表

[英]Include list of objects on abstract parent EF Code First

我有一個名為Businessabstract類,如下所示:

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類。 看起來像這樣:

public class Supplier : Business
{
  public virtual ICollection<PurchaseOrder> PurchaseOrders { get; set; }
}

一切都很好,但是當我為我的MVC前端爭取一個供應商時,我想包括與該供應商關聯的Addresses

我嘗試了這個:

public Supplier GetSupplier(int id)
{
  return _context.Businesses.Include(b => b.Addresses).OfType<Supplier>().SingleOrDefault(x => x.Id == id);
}

但是它不起作用,它說Supplier上沒有Addresses屬性。

如果將集合從IEnumerable更改為ICollection,則代碼應該可以正常工作

由於基類是抽象的,因此必須實現重寫。

從MSDN

“標記為抽象的成員或包含在抽象類中的成員必須由從抽象類派生的類實現”

或者,也可以刪除abstract關鍵字,以便默認使用base。

另一個選擇是,刪除基並使用接口代替,除非您有使用抽象類的特殊原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM