簡體   English   中英

LINQ to SQL in c#和數據庫訪問

[英]LINQ to SQL in c# and database access

我不知道怎么問這個問題。 所以我只舉一個例子。

碼:

var db = new dbContext();
var dlo = new DataLoadOptions()

dlo.LoadWith<Order>(x => x.Company);
db.LoadOptions = dlo;
var compIds = prms.companies.Select(x => x.Id).ToArray();

正如我對上面的代碼所理解的,我從Order表中加載Company,然后通過他們的ID獲取公司。 和它一樣嗎?

var compIds = (from it in context.GetTable<Order>()
                       select it.Company.Id).ToArray();

或者我完全混淆了兩個不同的概念?

我認為你對三件事感到困惑:

  1. context.GetTable<Order>()context.Orders相同(假設一切都配置正確。

  2. 您作為示例提供的查詢並不等效; 他們問兩個不同的問題。 首先是詢問“給我所有的公司ID”。 甚至不會使用DataLoadOptions 第二個是要求給我每個訂單的公司ID。 你會得到重復的。

  3. DataLoadOptions通常用於熱切加載相關對象實例,而不是加入。

我認為你真正想要的是:

var uniqueCompanyIDsThatHaveAtLeastOneOrder = db.Orders.Select(o => o.Company.Id).Distinct();

暫無
暫無

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

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