2
我对使用LINQ相当陌生,现在正试图构建一个我不太能解决的LINQ问题。 我想问一个数据库的问题,我想从几个表中取回单行,而从其他表中取出行的列表。下面LINQ,从一个表中选择一个项目,从另一个表中选择多个项目
见代码太明白我想要做的事:
public DB.store store { get; set; }
public List<DB.gallery_image> images { get; set; }
public List<DB.product> products { get; set; }
public static List<Store> getStoreInfo()
{
DBDataContext db = new DBDataContext();
var _dataToGet = from _store in db.stores
select new Store
{
store = _store,
images = (from a in db.gallery_images
where a.albumID == _store.storeID
select a).ToList(),
products = (from p in db.products
where p.storeID = _store.storeID).ToList()
};
return _dataToGet.ToList();
}
所以我只是想从“商店”表中的一行,而是从“图像”和“产品”表的列表。上面的代码可以正常工作,但速度很慢。 只要每个表只有一个(或没有)行,但是当它是一个列表时我没有任何问题从多个表中选择数据,但是当我遇到问题时...
首先,这是错误的“其中a.albumID == _store.storeID” – Sasse
根据你解决你也许可以写“ images = _store.Images.ToList()“和”products = _store.Products.ToList()“。如果您将其分开以便您首先获得所有商店,然后循环浏览并设置图像和产品,您会得到期望的结果吗? (也写.ToList())获取商店时。 – Sasse
如果你只是选择了相同的类型,你可能已经写过“return db.stores.Include(s => s.Images)... .ToList();” – Sasse