【问题标题】:SingleResult Web Api remove QueryableSingleResult Web Api 删除 Queryable
【发布时间】:2016-04-20 03:26:08
【问题描述】:

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

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

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

当使用SingleResult<T> 时,我发现可以返回 1 个这样的类型的单个元素:

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

我想从我的SingleResult<T> 中删除{"Queryable":[]}

请帮忙:D

【问题讨论】:

  • 你的问题到底是什么?
  • 不要破坏您的问题并使现有答案无效。
  • 我想删除我的代码,我不应该这样做。那是一个错误。我个人受此影响。

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


【解决方案1】:

问题是您的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;
}

【讨论】:

    猜你喜欢
    • 2013-01-07
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多