2015-12-14 104 views
2

我創建了我認爲是在數據庫視圖上選擇的簡單控制器。但是,第一條記錄會在JSON結果中多次返回。例如,使用Odata進行過濾時,預計會有7個不同的記錄,但是會返回7個相同的記錄。通過Web API方法返回的重複記錄

這裏是控制器代碼:

using System; 
using System.Collections.Generic; 
using System.Data; 
using System.Data.Entity; 
using System.Data.Entity.Infrastructure; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 
using System.Web.Http.Description; 
using MyAPI.WebAPI.Models; 
using System.Web.OData; 
using System.Security.Principal; 
using System.Web; 

namespace MyAPI.WebAPI.Controllers 
{ 
    public class MyViewController : ApiController 
    { 
     private MyEntities db = new MyEntities(); 

     // GET 
     [EnableQuery] // Enables OData query integration 
     public IHttpActionResult GetMetrics() 
     { 
      return Ok(db.ViewResults.AsQueryable()); 
     } 
    } 
} 

當使用在return語句一個斷點,我能看到所有4000個結果在該查詢返回和OData的似乎是過濾只有7條記錄我需要但是當它通過JSON字符串發送它重複。

有沒有人遇到類似這樣的事情?

回答

0

好吧,原來我沒有在Entity Framework中正確設置密鑰。我最終使用的密鑰是位置,日期和度量標準的組合鍵。一旦在框架模型中選擇了這些鍵,所有按預期工作。