[英]LINQ to Entities - limiting included tables
使用具有一對多關系的兩個表(例如Make-> Model),如何在IQueryable函數中返回帶有有限Model子項的Make?
當我將“ camry”作為變量傳遞時,我想找回只有一個叫做“ camry”的孩子而不是所有孩子的Toyota品牌。 基本上,我想重新創建此SQL語句:
SELECT
MakeName,
ModelName
FROM
Make
LEFT OUTER JOIN Model ON Model.MakeId = Make.MakeId
WHERE
Model.ModelName = 'camry'
到目前為止,LINQ語句將如下所示:
return this.ObjectContext.Make
.Include("Model")
.Where(make => make.Model.ModelName.Equals("camry")
這顯然在語法上是不正確的,因為Where子句中的.Model是實體集合,並且沒有.ModelName屬性。
您如何限制包含的表格? 在LINQ to Entities中有可能嗎?
請注意,這不在我的腦海中,我也不必費心進行編譯,因此可能會有些問題:
return this.ObjectContext.Make.Include("Model")
.Where(make => make.Models.Any(model => model.ModelName == "camry"))
另請注意,我認為該品牌將具有“型號”而不是“型號”
編輯:
我沒有正確理解這個問題。 這是您想要的查詢:
return this.ObjectContext.Model.Include("Make")
.Where(model => model.ModelName == "camry")
這也應該工作:
from make in ctx.Makes
from model in make.Models
where model.Name == "camry"
select new
{
Make = make,
Model = model
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.