【发布时间】:2015-11-06 12:48:34
【问题描述】:
我想从列表中找到一条记录,该记录应该是列表的 MAX (id)。此记录用于在网格视图中显示。
var cacheProducts = nettingOffAudService.All().TOList();
Product product = productService.FindBy(x => x.ProductName == "NETOFF");
var MasterRenewal = masterRenewalAudService.All().Where(x => x.ProductSeq == product.Id ).ToList();
这里我想将 MasterRenewal 的一列与 cacheProducts 的 Id 匹配,所以我尝试如下
var jsonData = new
{
total = totalPages,
page = page,
records = totalRecords,
rows = (
from p in cacheProducts
join MR in MasterRenewal on p.Id equals MR.MstSeq into MRRenewal
from MR in MRRenewal.DefaultIfEmpty()
select new
{
cell = new Object[]
{
p.Id.ToString(),
B.BranchName,
p.AccountNumber,
p.ClientName,
MR==null?"":((enumRecStatusMasterRenewal)MR.RecordStatus).GetDescriptionEnum(),
p.Status.GetStatusString(),
}
}).ToArray()
};
如果 MasterRenewal 包含多个具有相同 MstSeq 的记录,那么我想取最后生成的记录,即 MAX (id)。为此,我尝试如下
join MR in MasterRenewal on p.Id equals MR.MstSeq into MRRenewal
from MR in MRRenewal.Max(x=>x.Id).First().DefaultIfEmpty()
但这不起作用,那么如何做到这一点?请任何人帮忙。
【问题讨论】:
-
您能与我们分享一个示例输入和预期输出吗?
-
什么是
B.BranchName? -
Branch 是另一个表,所以 id 与分支表匹配如下 ===> var Branch = branchService.All().ToList();在 p.BranchSeq 上的 Branch 中加入 B 等于 B.Id
-
考虑两个表,即 NetOff 和 Renewal。我想从 NetOff 表中获取所有记录,加入 Renewal 表的 MstSeq 和 ProductSeq 列。这里 ProductSeq 是相同的值,但 MstSeq 包含不同的值。而且 MstSeq 也可以是重复的。这里我的输出是:如果 MstSeq 在 Renewal 表中包含重复项,那么我想获取最大 id 记录。 @多罗。如果你知道答案,请帮助我
标签: c# oracle linq join nhibernate