首先,根据评论,您应该准确了解现有代码的每一行首先做什么。(您还应该尝试遵循 .NET 命名约定。)如果您猜测代码的哪一部分做了什么,最好阅读针对您正在使用的 LINQ 提供程序的好教程(实体框架?)。
我们真的不知道是什么Mapper.ToHotelObject
,或者是否已经有一种方法可以转换整个序列。这应该可以工作:
public List<BO.Hotel> GetHotels()
{
// Note: you may want a using statement here...
TripBagEntities db = new TripBagEntities();
var hotels = db.HotelEntities
.Where(m => m.id < 10)
.AsEnumerable()
.Select(Mapper.ToHotelObject)
.ToList();
}
或者如果方法组转换不起作用:
public List<BO.Hotel> GetHotels()
{
// Note: you may want a using statement here...
TripBagEntities db = new TripBagEntities();
var hotels = db.HotelEntities
.Where(m => m.id < 10)
.AsEnumerable()
.Select(m => Mapper.ToHotelObject(m))
.ToList();
}
请注意,我对整个查询使用了“点表示法”,因为当您使用AsEnumerable
and之类的东西时,它使生活变得更简单ToList
,而且您的查询表达式并不复杂。
该AsEnumerable
调用将查询“转换”为 LINQ to Objects,因此查询到 SQL 的转换部分不需要尝试转换Mapper.ToHotelObject
为 SQL,我认为这会失败。