我正在使用Microsoft Entity Framework和.Net Core 2.1创建Web应用程序。
在我的一个控制器中,我试图合并3组不同的数据。
这是我处理数据过滤的方式:
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();
现在,我需要执行以下操作(tsql):
select *
from eventBands eb
left join eventTickets et ON et.venueID = eb.venueID
left join eventSponsers es ON es.eventID = et.eventID
有没有办法用c#和linq做到这一点?
谢谢!
答案 0 :(得分:2)
尝试使用下面的linq连接三组数据:
var result = ...
select new LinqViewModel
{
};
return View(result.ToList());
更新:
要将结果返回到视图,请尝试使用ViewModel。
@model IEnumerable<LinqViewModel>
在视图中:
try (ClientSession clientSession = client.startSession()) {
clientSession.startTransaction();
result = collection.find(clientSession, keyOfDoc);
if (result blah blah blah) {
// Change the doc
collection.insertOne(clientSession, doc);
}
clientSession.commitTransaction();
}