Entity framework 如何使用泛型存储库模式从数据库中获取特定列并将其存储在变量中
我正在使用此函数从我的通用存储库中的数据库获取数据Entity framework 如何使用泛型存储库模式从数据库中获取特定列并将其存储在变量中,entity-framework,linq,generics,Entity Framework,Linq,Generics,我正在使用此函数从我的通用存储库中的数据库获取数据 public ICollection<TType> GetSpecificColumn<TType> (Expression<Func<TEntity, bool>> where, Expression<Func<TEntity, TType>> select) where TType : class { return DbSet.
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 GetSpecific列
(表达式,表达式选择)其中TType:class
{
返回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();
}
public ICollection getyarnblendidbyarnid(长yarnId)
{
var myData=\u unitOfWorks.warn\u Repository.GetSpecificColumn(x=>x.YarnID==YarnID,x=>new{x.YarnBlendID});
var blend=myData.First().ToString();
var yarnBlenIdGet=混合。移除(0,16);
var blendId=yarnBlenIdGet.Remove(6);
long yarnBlendId=Convert.ToInt32(blendId);
_unitOfWorks.Thread\u Blend\u Repository.GetSpecificColumn(x=>x.YarnBlendID==YarnBlendID,x=>new{x.YarnBlendName});
var myyarnBlendId=\u unitOfWorks.warn\u Blend\u Repository.GetSpecificColumn(x=>x.YarnBlendID==YarnBlendID,x=>new{x.YarnBlendName});
返回myyarnBlendId.ToList();
}
这是错误的
无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.IEnumerable”。存在显式转换(是否缺少转换?我更改代码如下
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;
}
公共对象getyarnblendidbyarnid(长yarnId)
{
var myData=\u unitOfWorks.warn\u Repository.GetSpecificColumn(x=>x.YarnID==YarnID,x=>new{x.YarnBlendID});
var blend=myData.First().ToString();
var yarnBlenIdGet=混合。移除(0,16);
var blendId=yarnBlenIdGet.Remove(6);
long yarnBlendId=Convert.ToInt32(blendId);
IEnumerable list=\u unitOfWorks.warn\u Blend\u Repository.GetMany(p=>p.YarnBlendID==YarnBlendID);
对象myyarnBlendId=\u unitOfWorks.warn\u Blend\u Repository.GetSpecificColumn(x=>x.YarnBlendID==YarnBlendID,x=>new{x.YarnBlendName,x.YarnBlendID});
//foreach(myyarnBlendId中的var Myyarnada)
//{
//字符串YarnBlendName=myyarnada.YarnBlendName;
//}
//return list.ToList();
返回myyarnBlendId;
}
现在可以用了