Получить данные списка выбранного столбца из таблицы - PullRequest
0 голосов
/ 26 апреля 2019

Я хочу получить данные выбранных столбцов из таблицы и вернуть эти данные в класс репозитория.Но мой запрос не возвращает никаких данных.

Мой код:

 public  IQueryable<BusinessProfile> GetBusinessProfileAddress()
    {

        var y = _db.Set<BusinessProfile>().Where(x => x.Deleted == false).Select(x => new
        {
            x.ID,
            x.Address.StreetName,
            x.Address.Number,
            x.Address.Complement,
            x.Address.PostalCode,
            x.Address.Neighborhood,
            x.Address.City,
            x.Address.State
        });
        var d=from a in BusinessProfile select a. 

        return  y; ;
    }

Примечание. Здесь «return y» означает ошибку.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Для вашего текущего кода вы получите ошибку типа

Невозможно неявно преобразовать тип 'System.Linq.IQueryable <>' в 'System.Linq.IQueryable'.Существует явное преобразование

Если вы хотите вернуть новый тип, вы можете определить новую модель и изменить BusinessProfile.

public IQueryable<BusinessProfileVM> GetBusinessProfileAddress()
{
    var y = _appDbContext.Set<BusinessProfile>().Where(x => x.Deleted == false).Select(x => new BusinessProfileVM
    {
        Id = x.Id,
        StreetName = x.Address.StreetName,
    });

    return y; 
}
public class BusinessProfileVM
{
    public int Id { get; set; }
    public string StreetName { get; set; }

}
0 голосов
/ 28 апреля 2019

Этот код даже не будет создан, потому что вы еще не завершили этот запрос: var d=from a in BusinessProfile select a., но вы вообще не используете переменную d, поэтому вам следует удалить всю строку var d=from a in BusinessProfile select a..И вам не нужно 2 точки с запятой после y.Итак, ваш код должен выглядеть так:

public IQueryable GetBusinessProfileAddress() {

    var y = _db.Set<BusinessProfile>().Where(x => x.Deleted == false).Select(x => new
    {
        x.ID,
        x.Address.StreetName,
        x.Address.Number,
        x.Address.Complement,
        x.Address.PostalCode,
        x.Address.Neighborhood,
        x.Address.City,
        x.Address.State
    });

    return  y;
}
...