Verwendung von C# MVC5 Visual Studio 2015Linq Wert kann auf FK nicht null sein
Ich habe eine Methode, die den folgenden Code enthält:
public List<OffersOnPropertyViewModel> Build(string buyerId)
{
var filtered = _context.Properties.Where(x => x.Offers.Any(c => c.BuyerUserId == buyerId)).ToList();
var model = filtered.Select(c =>
{
var item = new OffersOnPropertyViewModel()
{
PropertyType = c.PropertyType,
NumberOfBedrooms = c.NumberOfBedrooms,
StreetName = c.StreetName,
Offers = c.Offers.Where(d => d.BuyerUserId == buyerId).Select(x => new OfferViewModel
{
Id = x.Id,
Amount = x.Amount,
CreatedAt = x.CreatedAt,
IsPending = x.Status == OfferStatus.Pending,
Status = x.Status.ToString(),
BuyerUserId = x.BuyerUserId
}),
};
return item;
}).ToList();
//TODO: refactor, shorten linq, duping where clause
return model;
}
Hier ist das Modell:
public class Property
{
[Key]
public int Id { get; set; }
[Required]
public string PropertyType { get; set; }
[Required]
public string StreetName { get; set; }
[Required]
public string Description { get; set; }
[Required]
public int NumberOfBedrooms { get; set; }
[Required]
public string SellerUserId { get; set; }
public bool IsListedForSale { get; set; }
public ICollection<Offer> Offers { get; set; }
}
In der Tabelle DB-Angebote hat die Eigenschaft id als FK.
Die Methode schlägt zur Laufzeit fehl und sagt, dass der Wert nicht null sein kann.
Wenn ich durchtrete merke ich die gefilterten Ergebnisse (im Beispiel ist es 1 Ergebnis), sagt Angebote ist null. Obwohl die Abfrage nur die Ergebnisse basierend auf "x.Offers" gefiltert hat.
Ich brauche einfach einen Weg, um eine Liste von Immobilien, die Angebote von der käuferId zur Verfügung gestellt haben, abrufen. Ist meine Vorgehensweise falsch? oder fehlt mir ein Liner?
Dank
natürlich, komplett vergessen zu bringen Kinder über include .... seufzen, dass Freitag Gefühl – lemunk