【发布时间】:2016-08-14 21:18:05
【问题描述】:
我有一个以下格式的 LINQ 查询。问题是我以列表的形式传递了 100 个consumerID 的列表。我想查询数据库并为
所有这 100 个消费者 ID。然而,查询只为第一个人返回结果。我怀疑我在 where 子句中遗漏了一些东西。我确信所有这 100 个 consumerId 的数据库中都有匹配的结果。
public ICollection<ConsumerExchangeChangeDto> GetByConsumers(List<int> consumerIDs)
{
EnrollmentReportingModel db = (EnrollmentReportingModel)Context.DbContext;
var results = (from ecew in db.A
join ecewe in db.B on ecew.ID
equals ecewe.ExchangeChangeEnrollmentWindowID into temp
from j in temp.DefaultIfEmpty()
join cecr in db.C on ecew.ConsumerExchangeChangeRequestID equals cecr.ID
join con in db.D on cecr.ConsumerID equals con.ID
where consumerIDs.Contains(con.ID) && !ecew.Deleted
select new E
{
ConsumerID = con.ID,
OrganizationID = con.OrganizationID,
StartDate = ecew.StartDate,
EndDate = ecew.EndDate,
Deleted = ecew.Deleted
}).ToList();
return results;
}
这里是 dto 类
public class E : ILzDto
{
public int ConsumerID { get; set; }
public int OrganizationID { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public bool Deleted { get; set; }
}
【问题讨论】:
-
consumerIDs参数中有多少项?以及Deleted=true的表中有多少条记录? -
我不明白您正在创建一个类型 E 的列表,但该函数返回类型 ConsumerExchangeChangeDto -- 这如何编译?
标签: sql asp.net-mvc linq