Как использовать выборку конкретного столбца из базы данных и сохранение его в переменной с использованием универсального шаблона репозитория - PullRequest
0 голосов
/ 15 июня 2019

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

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 Ответ

0 голосов
/ 15 июня 2019

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

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;
    }

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

...