无法获得GET:api / xyz与Entity Framework一起使用

时间:2015-11-05 08:31:56

标签: c# entity-framework entity-framework-6

我有一个带有外键的表a到另一个表b。 EF模型是从数据库生成的。我想要的只是表a中的所有数据。

但是自动生成的方法

        // 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个条目,我只想要它们。

1 个答案:

答案 0 :(得分: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; 
    } 
}