无法获取get:api/xyz以使用实体框架

本文关键字:实体 框架 xyz 获取 get api | 更新日期: 2023-09-27 18:20:34

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

无法获取get:api/xyz以使用实体框架

下面的代码怎么样?

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

我认为你应该用[HttpGet]来注释你的方法。

更新:对于问题的新部分:

您可以在DbContext:中禁用延迟加载

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