2015-11-05 79 views
0

我有一個表a與外鍵到另一個表b。 EF模型是從數據庫中生成的。我想要的只是表格a中的所有數據。無法獲得GET:api/xyz與實體框架一起使用

但自動生成的方法

 // GET: api/Massnahmentyp 
     public IQueryable<MASSNAHMENTYP> GetMASSNAHMENTYPs() 
     { 
      return db.MASSNAHMENTYPs; 
     } 

回報什麼。但是,方法

 // GET: api/Massnahmentyp/5 
     [ResponseType(typeof(MASSNAHMENTYP))] 
     public IHttpActionResult GetMASSNAHMENTYP(decimal id) 
     { 
      MASSNAHMENTYP mASSNAHMENTYP = db.MASSNAHMENTYPs.Find(id); 
      if (mASSNAHMENTYP == null) 
      { 
       return NotFound(); 
      } 

      return Ok(mASSNAHMENTYP); 
     } 

工作並返回正確的條目。我做錯了什麼?

更新 好吧,它似乎一直工作,只是響應是由於外鍵的緣故。是否可以忽略依賴關係,以便它不會將數千個條目連接到響應中?表a只有6個條目,我只希望他們。

+2

你有沒有試圖返回db.MASSNAHMENTYPs.ToList();並將方法輸出類型設置爲List或IEnumerable? –

+1

_「是否可以忽略依賴關係」 - 是的,通過禁用延遲加載。 – CodeCaster

回答

1

下面的代碼怎麼樣?

// GET: api/Massnahmentyp 
[HttpGet] 
public IEnumerable<MASSNAHMENTYP> GetMASSNAHMENTYPs() 
{ 
    return db.MASSNAHMENTYPs.ToList(); 
} 

我想你應該用[HttpGet]註釋你的方法。

更新:對於你的問題的新的部分:

您可以禁用的DbContext延遲加載:

public class YourContext : DbContext 
{ 
    public YourContext() 
    { 
     this.Configuration.LazyLoadingEnabled = false; 
    } 
} 
相關問題