У меня есть таблица предметов для аукциона и таблица предложений, сделанных для этих предметов. В базе данных есть намного больше, но мы будем делать это просто.
public class Items
{
public int ItemID { get; set; }
public string ItemName { get; set; }
public List<Bid> Bids { get; set; }
}
public class Bids
{
public int BidID { get; set; }
public int ItemID { get; set; }
public decimal Amount { get; set; }
public datetime BidTime { get; set; }
public int CustomerID { get; set; }
}
Я хочу вернуть набор данных, который включает ItemID, ItemName и все связанные записи ставок, упорядоченные BidTime, по убыванию. Наконец, я хотел бы видеть только те товары, на которые подал заявку определенный Клиент, и я хотел бы видеть только их ставки для этого товара. Между Bids.ItemID и Items.ItemID существует связь по внешнему ключу. Я использую Linq для SQL.
Это работает и, кажется, возвращает правильный набор данных:
from i in Items
from b in i.Bids
where i.AuctionID == 2 && b.CustomerID == (Int32?)1165
orderby b.BidTime descending
select new
{
i.ItemID,
i.ItemName,
i.Bids
}
Я парень SQL, пытающийся обернуть голову вокруг ОО-природы Linq. Это лучший способ (или даже хороший) получить желаемый результат? Есть ли лучший способ?
Спасибо
BK