Как вернуть только дочернюю модель в ответе wep api - PullRequest
0 голосов
/ 06 марта 2020

вот мои модели, здесь в моей модели PK украшен Key becoz в EF, это должно быть. Но так же доступно в базовом классе. если я удалил PK из Person, это выдаст ошибку, так как модель не назначит Key IN EF, что странно для меня.

public class Person:TBase
{
    [Key]
    public long PK { get; set; }
    public string NAME { get; set; }
    public string ADDRESS { get; set; }

}

 public class TBase: Base
{
    public virtual long? FKTenant { get; set; }
    public virtual bool IsDefault { get; set; }

}

 public class  Base
{
    [Key]
     public long PK { get; set; }
     public virtual string GlobalID { get; set; }

}

и контроллер

[EnableQuery]
    public IHttpActionResult Get()
    {
        try
        {
           IQueryable<Person> result;
            var  result = DbContext.Persons.Where(x => x.FKTenant == context.FKTenant).ToList(); 
            return Ok(result);
        }
        catch (Exception ex)
        {
            return BadRequest(ex.Message);
        }

    }

я получаю ответ в почтальоне:

"value": [
    {
        "@odata.etag": "W/\"bnVsbA==\"",
        "PK": 1001,
        "NAME": "VIVEK",
        "ADDRESS": "DELHI",
        "FKTenant":null,
        "IsDefault ":null,
        "GlobalID ":null

    }]

Но мое намерение получить ответ, как показано ниже, должно содержать только имя и адрес

"value": [
    {
        "@odata.etag": "W/\"bnVsbA==\"",
        "NAME": "VIVEK",
        "ADDRESS": "DELHI"
    }]

Любой гид будет заметен.

...