【发布时间】:2015-11-12 18:15:11
【问题描述】:
我有一个使用 Linq 语句填充的 JS 表。我对 LINQ 相当陌生,我真的需要这个 LINQ 语句,这样我才能完成我的项目。 这是我的 LINQ 声明。 (那个 where 语句是错误的,因为数据库值是错误的,linq 会修复一切)
MSCDatabaseDataContext MSCDB = new MSCDatabaseDataContext();
var q = from row in MSCDB.Tbl_Campaigns
join cs in MSCDB.tbl_StatusOfCampaigns on row.CampaignStatus equals cs.ID
where ((row.CampaignStatus == 0) ||
(row.CampaignStatus == 1) ||
(row.CampaignStatus == 2) ||
(row.CampaignStatus == 3))
select new Campaign
{
CampaignID = row.CampaignId,
CampaignName = row.CampaignName,
Target = Convert.ToInt32(row.Target),
Discount = Convert.ToInt32(row.Discount),
CampaignSDate = Convert.ToDateTime(row.StartDate),
CampaignEDate = Convert.ToDateTime(row.EndDate),
CurrentStatus = replaceStatus((row.CampaignStatus.ToString())),
Uptake = Convert.ToInt32(row.Uptake),
};
我基本上想删除 Where caluse 和内部连接,并且我可以有一个 Case 语句来显示基于日期的值。
CASE
WHEN EndDate >= GETDATE() and StartDate <= GETDATE() THEN 'Active'
WHEN StartDate >= GETDATE() THEN 'Pending'
ELSE 'Closed'
END as 'CurrentStatus',
我们将不胜感激。 (您可以删除 where caluse 和 inner join,因为它不需要。)
【问题讨论】: