SingleResult Web Api删除可查询

时间:2016-04-20 03:26:08

标签: c# asp.net-web-api iqueryable

我一直在尝试使用<User>访问我的对象SingleResult.Create()

这里的问题是我的API返回一个包含[1]元素的包装对象。

{"Queryable":[{"FirstName":"John","LastName":"Doe","UserName":"JohnDoe","Id":1}]}

使用SingleResult<T>时,我已经看到可以返回类似这样一个类型的单个元素:

{"FirstName":"John","LastName":"Doe","UserName":"JohnDoe","Id":1}

我想从{"Queryable":[]}

中删除SingleResult<T>

请帮助:D

1 个答案:

答案 0 :(得分:2)

问题是你的SingleResult.Create()正在为你的实体创建一个包装器对象,你想要的东西就是实体本身。要么使用项目内部的另一个方法,它不会包装你的对象(不知道那会是什么),或者更改方法的签名并直接返回实体。

[HttpGet]
public virtual TEntity GetById(int id)
{
    try
    {
        var data = GetDataById(id);
        return data; 
    }
    catch (Exception e)
    {
        throw e;
    }
}

public virtual TEntity GetbyId(int id)
{
    var data = _ctx.Set<TEntity>().Where(e => e.Id == id);
    var entity = data.FirstOrDefault();
    return entity;
}