Ich habe eine Liste von Objekten in der Tabelle TblB, die aus DB im folgenden Format abgerufen wird.links nicht 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; }
}
Ich habe eine Tabelle TBLA, die eine Spalte colA hat die int von 0 bis 1000 hat
Ich möchte eine Linq-Abfrage ähnlich wie SQL als unten erstellen ..
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
erfolglos
ich habe versucht, nach dem ..
kam ich zu finden, dass Enumerable.Range (0, 1001) eine numerische Reihe erzeugt, so müssen keine tha bekommen t Tabellendaten ..
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();
Ich sehe zwei Fehler in der zweiten Linie ..
p ist in ihrem Umfang nicht von der linken Seite von Gleichen .. Ich habe auch tried..p.mycounter> s mit dem gleichen Ergebnis.
Der andere Fehler ist in in dem es zeigt .. erwartete kontextuellen Stichwort gleich
Die Fehler gehen weg, wenn ich die zweite Zeile ändern ..
join p in plays on s equals p.mycounter into t
Alle Hilfe herzlich willkommen ist.
Dank
wow .. ohne Join und auf Direktive..also .. könntest du zeigen, wo ich mehr über den p .genre Stil der Handhabung lesen kann null, Tx – Arnab
Es ist der C# 6 [null Bedingungsoperator] (https : //msdn.microsoft.com/en-us/library/dn986595.aspx). –
aha .. das ist vs2015, im Falle von vs2103 .. das 'p == null? String.Empty: p.genre) 'sollte funktionieren? Wenn der Parameter int oder long ist, muss ich String.Empty mit null ändern, muss das auch meine Klasse 'playdata' ändern, so wie int int wird? Was würde passieren, wenn es lang ist – Arnab