我有三个对象(splistitemcollection)加入到一起工作很好,但我遇到的问题是合同对象和客户对象之间存在一对多的关系.我需要在连接期间仅抓取每个合同对象的第一个客户对象.
这是我得到的
(Contract)(Customer) 12345 John Smith 12345 Jane Smith 67890 howard Jones 67890 Mary Jones
这就是我想要的12345(只是其中一个客户,jane或john)
这是我目前正在使用的代码.
var joinedResults = from SPListItem contracts in _contractList
join SPListItem customers in _customerList
on contracts["ContractNumber"] equals customers["ContractNumber"]
join SPListItem loans in _loanList
on contracts["ContractNumber"] equals loans["Contract_x0020_Number"]
into l from loans in l.DefaultIfEmpty()
select new MergedData(contracts, customers, loans);
Run Code Online (Sandbox Code Playgroud)
在SQL中,我在我的连接中定义的子查询中定义了一个select top子句,我只是无法绕过我的新手linq大脑的语法.
最后结果
var joinedResults = from SPListItem contracts in _contractList
join SPListItem customers in
// Derived subset
(from SPListItem customers in _customerList
group customers by …Run Code Online (Sandbox Code Playgroud)