Я довольно новичок в использовании 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