Więc mam ten kod:Tylko prymitywne typy lub typy wyliczeniowe są obsługiwane w tym kontekście
public int saleCount(List<Shift> shifts) {
var query = (
from x in database.ItemSales
where shifts.Any(y => y.ID == x.shiftID)
select x.SalesCount
);
return query.Sum();
}
Niestety, to rzuca ten błąd:
Unable to create a constant value of type 'Shift'.
Only primitive types or enumeration types are supported in this context.
więc o to gdzie mogę określić zmiany, które jest po prostu normalnym Kod Entity Framework pierwszego obiektu:
[Table("Shifts")]
public class Shift : MPropertyAsStringSettable {
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public int SiteID { get; set; }
public string ShiftID_In_POS { get; set; }
public DateTime ShiftDate { get; set; }
}
Chyba problem jest to, że używam Shift, o bject w zapytaniu Linq. I robię operację "Any" na liście "Shift".
Jednym z możliwych rozwiązań jest zmiana listy na kolekcję lub coś podobnego, po prostu ładuję ją zapytaniem linq gdzieś indziej, ale czym byłby podpis?
Yup! Sprawdziło się, miałem zamiar zaproponować zmianę Listy na inny rodzaj kolekcji, ale to jest świetne. – Bill