我有一个LINQ查询来填充我的管理仪表板的表。在它内部,我有一个case
声明根据广告系列的日期填充字段。 (即,如果开始日期是小于DateTime.Now
,那么它将被显示为主动,你会看到下图)。我想要做的是,case语句中添加一个where
条件,更新EndDate
到DateTime.Now
,使其关闭。检查的条件是是否我Uptake
已经达到我的Target
,这意味着如果该活动所需的目标已经达到,那么运动被关闭。有人可以帮帮我吗?添加“当,那么”条款
MSCDatabaseDataContext MSCDB = new MSCDatabaseDataContext();
var q =
from row in MSCDB.Tbl_Campaigns
where row.CampaignStatus != 4
select new Campaign
{
CampaignID = row.CampaignId,
CampaignName = row.CampaignName,
Target = Convert.ToInt32(row.Target),
Discount = Convert.ToInt32(row.Discount),
CampaignStartDatesS =
Convert.ToDateTime(row.StartDate).Date + " - " +
Convert.ToDateTime(row.EndDate).Date,
//CampaignSDate = Convert.ToDateTime(row.StartDate),
//CampaignEDate = Convert.ToDateTime(row.EndDate),
CurrentStatus =
(row.EndDate >= DateTime.Now && row.StartDate <= DateTime.Now) ? "Active" :
row.StartDate >= DateTime.Now ? "Pending" :
row.CampaignStatus == 4 ? "Archived" : "Closed",
Uptake = Convert.ToInt32(row.Uptake),
};
,' collection.Where(a => a.CampaignStatus!= 4).Select()'。 –
可以使用做多的条件'那里 && ' –
Dbuggy
@YuvalItzchakov,嗨,伙计。 Uhm im仍然对开发很陌生。你能不能更具体些?另外,它表示Collection在当前上下文中不存在。是因为我没有把它放在正确的地方? –