Ich habe diese Abfrage beitreten, die alle Schulprogramme und Produkte zieht, die in einer Person Warenkorb ist:Wie erstellt man eine Linq Lambda Join-Abfrage, die Ergebnisse zieht, obwohl dort null Ergebnisse?
//this pulls all items the user purchased
var poop = Context.Query<Cart>().Where(x => x.UserId == currentUserId && x.Status == "Archived")
.Select(
p => new
{
p.ItemId,
p.TypeId,
p.PurchaseDate
})
//This get the media type name of the cart items
.Join(
Context.Query<MediaType>(),
t => new {t.TypeId},
m => new {TypeId = m.Id},
(t, m) => new
{
t.ItemId,
t.TypeId,
t.PurchaseDate,
m.TypeName
}).OrderBy(d => d.PurchaseDate)
//Now i need specifics of the items like name, sku, etc. StartDate will be null for items that are products, but contains DateTime for items that are programs.
.Join(
Context.Query<ProgramProductView>(),
e => new {e.ItemId, e.TypeId},
prog => new {ItemId = prog.Id, prog.TypeId},
(e, prog) => new
{
e.ItemId,
e.TypeId,
e.PurchaseDate,
e.TypeName,
prog.FullName,
prog.StartDate,
prog.Sku,
prog.Closed
}).OrderBy(d => d.PurchaseDate);
Also genau dort ist, wo es stürzt ab, weil prog.StartDate für Produkte null ist. Ich bekomme SQL ist nicht verfügbar Fehler.
Gibt es eine Möglichkeit, dass der Join Null-fähige Felder erlaubt? Ich benutze nur Lambda, weil es einfacher zu lesen und zu reinigen ist.
Probieren Sie '(DateTime?) Prog.StartDate' – MaKCbIMKo
* facepalm .... wow das war einfach. Vielen Dank. Kannst du das zur Antwort machen? – NeoSketo
Setzen Sie das einfach in die Antwort. – MaKCbIMKo