2017-04-19 72 views
0

我正在使用ASP.NET和現有的Azure數據庫構建Web Api。我遇到了實體框架和Azure數據庫的問題。我使用ADO.NET來產生所有從與代碼第一個版本的數據庫模型類的..實體框架從Azure DB返回每個表而不是一個

這是與ADO.NET生成我的DbContext的一個片段:

public IntelliMonDbContext() 
      : base("name=IntelliMonDbContext") 
     { 
     } 

     public virtual DbSet<C__MigrationHistory> C__MigrationHistory { get; set; } 
     public virtual DbSet<Device> Devices { get; set; } 

所有的dbset屬性都有一個名爲OnModelCreating的方法。我不太確定那是幹什麼的,但是因爲它產生了,我不認爲這是我的方法所在。

我的問題是,在我的DevicesController中,我試圖以JSON格式返回所有設備的列表,但是它將返回Azure數據庫中的所有表。我試圖在數據庫而不是設備查詢其他表,但我得到完全相同的結果。即使當我嘗試請求一個特定的device-id時,我也會得到一個JSON對象中的所有表。

// GET: api/Devices 
     public IEnumerable<Device> GetDevices() 
     { 
      return db.Devices.ToList(); 
     } 

我以前和lokal db和entity-framework一起工作過,我從來沒有遇到任何問題。我不明白上面的查詢可以如何在一個JSON對象中給我DB中的所有表。使用ADO.NET生成模型時,我錯過了一個關鍵步驟嗎?這可能是什麼問題?我已經盡力尋找類似的帖子,但我找不到任何匹配的內容,因爲這感覺就像是一件簡單的事情,不應該出錯。

如果需要,我會提供更多信息。

+0

聽起來像渴望加載到我。 – Maarten

+0

嘗試從DbSets中取出虛擬內容,除非您正在進行某些高級或嘲弄操作。 –

+0

我試過了,但是結果完全一樣..還有其他建議嗎?我不明白這個問題是什麼。我曾多次與當地的dbs合作過,並沒有遇到過這樣的問題。 – emmep

回答

0

原來是這樣做的對象內部的ICollections。我只是從其他用戶建議的屬性中刪除了虛擬內容,但是我錯過了由ADO.NET自動生成的ICollections。

謝謝你的幫助。

相關問題