[英]How to do an Inner Join in LINQ
I have a Linq statement to retrieve data into my JAVASCRIPT table. 我有一条Linq语句,可将数据检索到我的JAVASCRIPT表中。 What i want to do is display who the campaign was archived by.
我想做的是显示广告活动的归档者。 I need to join it to my MSCDB.Tbl_Users onto the Campaign table.
我需要将其加入我的MSCDB.Tbl_Users到Campaign表中。 Could anyone try give me some help with this?
有人可以尝试给我一些帮助吗? I am fairly new to LINQ.
我对LINQ相当陌生。
MSCDatabaseDataContext MSCDB = new MSCDatabaseDataContext();
var q = from row in MSCDB.Tbl_Campaigns
where row.CampaignStatus == 4
select new ArchiveReport
{
CampaignId = row.CampaignId,
CampaignName = row.CampaignName,
CampaignDescription = row.CampaignDescription,
CurrentStatus = row.EndDate >= DateTime.Now && row.StartDate <= DateTime.Now ? "Active" : row.StartDate >= DateTime.Now ? "Pending" : row.CampaignStatus == 4 ? "Archived" : "Closed",
CampaignStartDatesS = Convert.ToDateTime(row.StartDate).Date + " - " + Convert.ToDateTime(row.EndDate).Date,
Discount = Convert.ToInt32(row.Discount),
Target = Convert.ToInt32(row.Target),
Uptake = Convert.ToInt32(row.Uptake),
DateArchived = Convert.ToDateTime(row.DateArchived),
ArchivedBy = Convert.ToInt32(row.ArchivedBy)
};
I'm not sure how you db structure looks like but if Tbl_Users
have CampaignId
you should do it like this: 我不确定您的数据库结构如何,但是如果
Tbl_Users
具有CampaignId
,则应该这样:
MSCDatabaseDataContext MSCDB = new MSCDatabaseDataContext();
var q = from row in MSCDB.Tbl_Campaigns
//here is your join
join usr in MSCDB.Tbl_Users on row.CampaignId equals usr.CampaignId
//-------------------------
where row.CampaignStatus == 4
select new ArchiveReport
{
//Here how you can jet values from user table
UserName = usr.Name,
//-------------------------
CampaignId = row.CampaignId,
CampaignName = row.CampaignName,
CampaignDescription = row.CampaignDescription,
CurrentStatus = row.EndDate >= DateTime.Now && row.StartDate <= DateTime.Now ? "Active" : row.StartDate >= DateTime.Now ? "Pending" : row.CampaignStatus == 4 ? "Archived" : "Closed",
CampaignStartDatesS = Convert.ToDateTime(row.StartDate).Date + " - " + Convert.ToDateTime(row.EndDate).Date,
Discount = Convert.ToInt32(row.Discount),
Target = Convert.ToInt32(row.Target),
Uptake = Convert.ToInt32(row.Uptake),
DateArchived = Convert.ToDateTime(row.DateArchived),
ArchivedBy = Convert.ToInt32(row.ArchivedBy)
};
Sample code is 示例代码为
var q= from row in MSCDB.Tbl_Campaigns
join user in MSCDB.Tbl_Users
on row.UserId equals user.ID
select row;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.