[英]Outerjoin with a table of foreign keys in EF Data-first approach
我有一個表Users,其中包含用戶信息。 我有一個包含產品信息的產品表。 我有一個名為UserProduct的表,它充當聯結表,其字段為UserId和ProductId。 我正在使用實體框架數據庫優先方法。
我想使用Linq外連接以查找以下數據。
用戶表中的所有用戶。
使用名為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.