[英]LINQ Query to inner join DbContext Entities to IQueryable
我有兩個表,'Events'和'Services',它們具有一對多的關系(每個事件至少有一個服務)。
我正在編寫一個C#控制台應用程序,它將提取事件的子集,然后提取相應的服務。
我有一個方法將事件提取到IQueryable<Event>
對象,它按預期工作。 但是當我將IQueryable<Event>
對象加入IQueryable<Service>
(如下所示)時,我的結果對象包含不同上下文的引用,我只希望它包含IQueryable<Service>
結果。
有一個更好的方法嗎?
這是我的'ExtractServices'方法:
public IQueryable<Service> ExtractServices(IQueryable<Event> events)
{
using (var preCertEntities = new PreCertEntities())
{
IQueryable<Service> services = from s in preCertEntities.Services
orderby s.EventId
select s;
services = from s in services
join e in events on s.EventId equals e.EventId
select s;
return services;
}
你不應該像這樣提取子關系--EF會為你做:
public IQueryable<Service> ExtractServices(IQueryable<Event> events)
{
return events.SelectMany(e => e.Services).OrderBy(s => s.EventId);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.