C# 使用linq连接3组数据
我正在使用MicrosoftEntityFramework和.NETCore2.1创建一个web应用程序 在我的一个控制器中,我试图连接3组不同的数据 下面是我如何处理过滤数据的过程:C# 使用linq连接3组数据,c#,entity-framework,linq,asp.net-core,C#,Entity Framework,Linq,Asp.net Core,我正在使用MicrosoftEntityFramework和.NETCore2.1创建一个web应用程序 在我的一个控制器中,我试图连接3组不同的数据 下面是我如何处理过滤数据的过程: var eventSponsers = await _context.Sponsers .Where(s => s.catalogId != null).ToListAsync(); var eventBands = await _context.B
var eventSponsers = await _context.Sponsers
.Where(s => s.catalogId != null).ToListAsync();
var eventBands = await _context.Bands
.Where(b => b.typeId == 3).ToListAsync();
var eventTickets = await _context.Tickets
.Where(t => t.dateTimeStart >= startDate && t.dateTimeStart <= endDate).ToListAsync();
有没有办法用c和linq做到这一点
谢谢 尝试使用以下linq连接三组数据:
var result = from eb in eventBands
join et in eventTickets on eb.venueID equals et.venueID into bt
from x in bt.DefaultIfEmpty()
join es in eventSponsers on x.eventID equals es.eventID into st
from y in st.DefaultIfEmpty()
select new
{
// Add your assignments
//eb = eb.venueID,
//et = x.venueID,
//es = y.eventID
};
更新:
若要将结果返回到视图,请尝试使用ViewModel
var result = ...
select new LinqViewModel
{
};
return View(result.ToList());
鉴于:
@model IEnumerable<LinqViewModel>
尝试使用以下linq连接三组数据:
var result = from eb in eventBands
join et in eventTickets on eb.venueID equals et.venueID into bt
from x in bt.DefaultIfEmpty()
join es in eventSponsers on x.eventID equals es.eventID into st
from y in st.DefaultIfEmpty()
select new
{
// Add your assignments
//eb = eb.venueID,
//et = x.venueID,
//es = y.eventID
};
更新:
若要将结果返回到视图,请尝试使用ViewModel
var result = ...
select new LinqViewModel
{
};
return View(result.ToList());
鉴于:
@model IEnumerable<LinqViewModel>
可能的副本请参见。这是一个VB.NET问题,但将代码转换为C应该足够容易;也许我的朋友会帮助你。这些原则甚至适用于LINQ到对象。可能的重复请参见。这是一个VB.NET问题,但将代码转换为C应该足够容易;也许我的朋友会帮助你。这些原则甚至适用于LINQ到对象。我如何将其返回到我的视图,类似这样的东西?返回Viewresult.FirstOrDefault;谢谢对不起,我还有一个问题。在你的例子中,x和y是什么?当我试图在我的项目中使用它们时,它们不会被识别。谢谢如果左侧元素没有匹配项,请将DefaultIfEmpty方法与组联接结合使用,以指定要生成的默认右侧元素。x代表bt中的票证类,y代表st.x中的赞助商类。y可以更改为其他单词。如果要将结果返回到视图,则需要指定ViewModel并使用select new ViewModel{}而不是匿名类型。然后返回result.ToList并在视图中使用@model IEnumerable我如何将其返回到我的视图中,类似这样?返回Viewresult.FirstOrDefault;谢谢对不起,我还有一个问题。在你的例子中,x和y是什么?当我试图在我的项目中使用它们时,它们不会被识别。谢谢如果左侧元素没有匹配项,请将DefaultIfEmpty方法与组联接结合使用,以指定要生成的默认右侧元素。x代表bt中的票证类,y代表st.x中的赞助商类。y可以更改为其他单词。如果要将结果返回到视图,则需要指定ViewModel并使用select new ViewModel{}而不是匿名类型。然后返回result.ToList并在视图中使用@model IEnumerable