0
我有一个表tblB中的对象列表,它以下面的格式从db中检索。left non equi join linq
public class playdata
{
public string consumerid { get; set; }
public string play_time { get; set; }
public string genre{ get; set; }
.
.
.
public int mycounter{ get; set; }
}
我有一个表TBLA具有其具有从0到1000
我希望创建类似于SQL如下LINQ查询INT列可乐..
Select x.i as numindex, y.consumerid,y.play_time,y.genre
From
(Select colA as i from tblA) x
left join
(
Select consumerid, play_time,genre,mycounter from tblB
)y on y.mycounter > x.i
我试过以下失败..
我来找到Enumerable.Range(0,1001)生成一个数字序列,所以不需要得到临时吨表数据..
List<playdata> plays = .....
var q= (from s in Enumerable.Range(0, 1001)
join p in plays on s < p.mycounter into t
from rt in t.DefaultIfEmpty() select new{
numindex=s,
consumerid=p.consumerid,
play_time =p.play_time,
genre=p.genre
}).ToList();
我看到在第二行的两个错误..
p不是在等号的左边的范围。我有也tried..p.mycounter> s的相同结果。
其他错误是在为它显示..预计上下文关键字等于
的错误消失,如果我改变第二行..
join p in plays on s equals p.mycounter into t
所有帮助表示衷心感谢。
感谢
哇..没有任何加入和指令..也可以显示在哪里我可以阅读更多的p?.genre处理空的风格,null – Arnab
它是C#6 [null条件运算符](https ://msdn.microsoft.com/en-us/library/dn986595.aspx)。 –
aha ..那是vs2015,如果是vs2103 ..这个'p == null? String.Empty:p.genre)'应该工作?如果参数是int或long,我将不得不改变String.Empty为null,这将需要我的类'playdata'来改变以及如int成为int ?,如果长的话会发生什么 – Arnab