У меня есть список объектов в таблице 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, которая имеет столбец COLA, который имеет Int от 0 до 1000.
Я хотел бы создать Linq запрос, похожий на SQL, как показано ниже ..
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) сгенерировал числовую серию, поэтому нет необходимости получать tha т Таблица данных ..
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();
Я вижу две ошибки во второй строке ..
р не входит в комплект левой части равных .. У меня также tried..p.mycounter> ы с таким же результат.
Другая ошибка в в котором он показывает .. как ожидаются контекстное ключевым слово равно
Ошибки уходит, если я меняю вторую строку ..
join p in plays on s equals p.mycounter into t
Всей помощь искренне признателен.
Благодаря
wow .. без какого-либо соединения и по директиве..также мог бы показать, где я могу больше узнать о стиле p? .genre обработки null, Tx – Arnab
Это C# 6 [нулевой условный оператор] (https : //msdn.microsoft.com/en-us/library/dn986595.aspx). –
aha .. это vs2015, в случае vs2103 .. это 'p == null? String.Empty: p.genre) 'должен работать? в случае, если параметр является int или long, мне нужно будет изменить String.Empty с нулевым значением, будет ли это требовать, чтобы my class 'playdata' также изменился, например int, становясь int ?, что произойдет в случае long – Arnab