Как использовать выборку конкретного столбца из базы данных и сохранение его в переменной с использованием универсального шаблона репозитория

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

public ICollection<TType> GetSpecificColumn<TType> 
   (Expression<Func<TEntity, bool>> where, Expression<Func<TEntity, 
    TType>> select) where TType : class
    {
        return DbSet.Where(where).Select(select).ToList();
    }

Но когда я возвращаю список, он выдает ошибку, мой сервисный код

public ICollection<Yarn_Blends> GetYarnBlendIdByYarnId(long yarnId)
    {
        var myData = _unitOfWorks.Yarn_Repository.GetSpecificColumn(x => x.YarnID == yarnId, x => new { x.YarnBlendID });
        var blend = myData.First().ToString();
        var yarnBlenIdGet = blend.Remove(0,16);
        var blendId = yarnBlenIdGet.Remove(6);
        long yarnBlendId = Convert.ToInt32(blendId);
         _unitOfWorks.Yarn_Blend_Repository.GetSpecificColumn(x => x.YarnBlendID == yarnBlendId,x => new {x.YarnBlendName});
        var myyarnBlendId = _unitOfWorks.Yarn_Blend_Repository.GetSpecificColumn(x => x.YarnBlendID == yarnBlendId,x => new {x.YarnBlendName});

        return myyarnBlendId.ToList();
    }

Это приводит к ошибке. Невозможно неявно преобразовать тип 'System.Collections.Generic.List' в 'System.Collections.Generic.IEnumerable'. Существует явное преобразование (вам не хватает приведения?)

1 ответ

Я меняю свой код как

public object GetYarnBlendIdByYarnId(long yarnId)
    {
        var myData = _unitOfWorks.Yarn_Repository.GetSpecificColumn(x => x.YarnID == yarnId, x => new {x.YarnBlendID });
        var blend = myData.First().ToString();
        var yarnBlenIdGet = blend.Remove(0,16);
        var blendId = yarnBlenIdGet.Remove(6);
        long yarnBlendId = Convert.ToInt32(blendId);
        IEnumerable<Yarn_Blends> list = _unitOfWorks.Yarn_Blend_Repository.GetMany(p => p.YarnBlendID == yarnBlendId);

        object myyarnBlendId = _unitOfWorks.Yarn_Blend_Repository.GetSpecificColumn(x => x.YarnBlendID == yarnBlendId,x => new {x.YarnBlendName,x.YarnBlendID});
        //foreach(var myYarnData in myyarnBlendId)
        //{
        //    string YarnBlendName = myYarnData.YarnBlendName;
        //}
       // return list.ToList();
        return myyarnBlendId;
    }

Теперь работает нормально

Другие вопросы по тегам