【发布时间】:2019-02-27 04:22:07
【问题描述】:
db.DbEnquiryModules - 如何将此查询编写为 lambda 表达式或 linq?
SELECT
tenq.EnquiryID
,tenq.EnquiryNo
,tenq.CompanyID
,tenq.EnquiryDate
,tenq.ClientID
,tenq.Address
,tenq.ContactPerson
,tenq.Email
,tenq.Mobile
,tenq.Landline
,tenq.SourceID
,tenq.PriorityID
,tenq.AreaID
,tenq.status
,tenq.Remark
,tenq.IsDeleted
,tenq.CreatedDate
,tenq.CreatedBy
,tenq.ModifiedDate
,tenq.ModifiedBy
,Y.FollowupDate AS LastFollowup
,Y.NextFollowup AS NextFollowup
,srno2
INTO
#tmp
FROM
tblEnquiryModule tenq
LEFT JOIN
(SELECT
ROW_NUMBER() OVER (PARTITION BY EnquiryModuleID ORDER BY FollowupId DESC) SRno2,
*
FROM
tblFollowup) Y ON Y.EnquiryModuleID = EnquiryID
AND Y.srno2 <=2 ----------Last followUp
WHERE
tenq.CompanyID = @companyid
--
DELETE a
FROM #tmp a
JOIN #tmp b ON a.EnquiryID = b.EnquiryID
AND b.srno2 = 2
WHERE a.srno2 = 1
SELECT * FROM #tmp
我有两个带有查询的表,它的 followup.above 查询返回查询及其最后跟进日期(如果存在)和下一个跟进日期
我的实体
public class DTOEnquiryModule
{ [Key]
public int EnquiryID { get; set; }
public string EnquiryNo { get; set; }
public int CompanyID { get; set; }
public DateTime? EnquiryDate { get; set; }
public string Mobile { get; set; }
public string Landline { get; set; }
public string status { get; set; }
public int? ModifiedBy { get; set; }}
public class DTOFollowup
{
[Key]
public int FollowupId { get; set; }
public int EnquiryModuleID { get; set; }
[ForeignKey("EnquiryModuleID")]
public DTOEnquiryModule EnquiryModule { get; set; }
public DateTime FollowupDate { get; set; }
public string FollowupRemark { get; set; }
public DateTime? NextFollowup { get; set; }
public string NextFollowupRemark { get; set; }
}
查询表
|EnquiryID|EnquiryNo|EnquiryDate |status
|1 |EN1 |2019-02-19 00:00:00.000|ongoing
|2 |EN2 |2019-02-20 00:00:00.000|ongoing
|3 |EN3 |2019-02-23 00:00:00.000|ongoing
跟进表
FollowupId|EnquiryModuleID|FollowupDate |FollowupRemark|NextFollowup
1 |1 |2019-02-20 00:00:00.000|NA |NULL
2 |2 |2019-02-21 00:00:00.000|NA |2019-02-23 00:00:00.000
3 |2 |2019-02-23 00:00:00.000|NA |NULL
4 |3 |2019-02-24 00:00:00.000|NA |2019-02-26 00:00:00.000
5 |3 |2019-02-26 00:00:00.000|NA |2019-02-28 00:00:00.000
6 |3 |2019-02-28 00:00:00.000|NA |NULL
我想要下面的结果表
|EnquiryID|EnquiryNo|EnquiryDate |status |NextFollowup |LastFollowup
|1 |EN1 |2019-02-19 00:00:00.000|ongoing|NULL |2019-02-20 00:00:00.000
|2 |EN2 |2019-02-20 00:00:00.000|ongoing|2019-02-23 00:00:00.000|2019-02-21 00:00:00.000
|3 |EN3 |2019-02-23 00:00:00.000|ongoing|2019-02-28 00:00:00.000|2019-02-26 00:00:00.000
每当我添加新的跟进时,需要更新以前的跟进详细信息以维护历史记录并通过查询 ID 获取最新的跟进。
我想显示最后一次跟进和下一次跟进日期的查询列表
【问题讨论】:
-
如果您使用实体框架,请编辑您的问题并向我们展示您的类(相关部分),尤其是虚拟属性和键。用文字描述您的要求也会有所帮助(“给我所有的询问以及他们最后的跟进日期和......”)
-
Harald Coppoolse 请检查
标签: c# entity-framework linq linq-to-sql entity-framework-6