2015-12-14 79 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中正确设置密钥。我最终使用的密钥是位置,日期和度量标准的组合键。一旦在框架模型中选择了这些键,所有按预期工作。