簡體   English   中英

EF Data-first方法中使用外鍵表進行外部聯接

[英]Outerjoin with a table of foreign keys in EF Data-first approach

我有一個表Users,其中包含用戶信息。 我有一個包含產品信息的產品表。 我有一個名為UserProduct的表,它充當聯結表,其字段為UserId和ProductId。 我正在使用實體框架數據庫優先方法。

我想使用Linq外連接以查找以下數據。

  1. 用戶表中的所有用戶。

  2. 使用名為isPurchased的布爾值購買了特定產品的所有用戶。

我的想法是將外部連接表User和UserProduct留給所有用戶以及他們是否有這樣的產品。

var result = from a in Users 
         join b in UserProduct(Not available through EF) on a.Id equals b.prodId into group1
         from g1 in group1.DefaultIfEmpty()
         select new 
         {
              id =  g1.Id,                  
              isPurchased = g1.prodId != null
         }.ToList();

但是,在EF映射中,沒有創建對象UserProduct,因此我不能在Linq查詢中直接使用它嗎? 那么我該怎么做呢? 有沒有一種方法可以使用linq用實際的表名(UserProduct)聯接表,而不是聯接實體?

假設Users包含一個屬性List<Products> products來表示結點信息,以及一個變量boughtProductId來代表特定產品:

var result = from u in Users
             let isPurchased = u.products.Any(p => p.Id == boughtProductId)
             select new {
                 id =  isPurchased ? boughtProductId : null,
                 isPurchased
             }.ToList();

暫無
暫無

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

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