簡體   English   中英

在 C# 中查找/加入 LINQ-to-Entities

[英]Lookup / Join with LINQ-to-Entities in C#

我有一個包含兩個表的數據庫:訂單和產品。 該數據庫通過實體數據 Model 和 LINQ-to-Entities 公開。

我有一個產品 ID,我想獲取所有引用該產品的 Order 對象。 我想了解如何使用 LINQ 做到這一點。 我知道我可以查詢產品

int productID = GetProductID();
using (DatabaseContext database = new DatabaseContext())
{
  var products = from product in database.Products
               where product.ProductID = productID
               select product;

}

我知道這個 LINQ 查詢可以讓我獲得具有特定產品 ID 的所有產品。 但是,我想要 Order 對象。 我試圖弄清楚做一個 Join 並獲得 Order 對象。 我不關心產品,因為我有產品 ID。 有沒有辦法做到這一點?

謝謝!

 var orders = from product in database.Products
            join order in database.Orders on product.Key equals order.KeyField 
           where product.ProductID == productID
           select order;

通常, Order與產品有關系,允許您編寫:

var orders = from order in database.Orders
             where order.Products.Any(p => p.ProductID == productID)
             select order;

通常,這將是這樣完成的:

為簡單起見: [TABLE] <key/relation>

[Products]-<productId>-[OrderedProducts]-<orderId>-[Orders]

var result = 
from op in OrderedProducts
join o in Orders on op.OrderId equals o.Id
join p in Products on op.ProductId equals p.Id
select p

類似於(取決於您擁有的屬性):

context.Orders.Where(order => order.ProductId == myProduct.Id);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM