ja dostaję ten błąd dla zapytania poniżejNie można utworzyć stałą wartość typu Tylko prymitywnych typów lub typy wyliczeniowe są obsługiwane w tym kontekście
Nie można utworzyć stałą wartość typu
API.Models.PersonProtocol
. Tylko prymitywne typy lub typy wyliczeniowe są obsługiwane w tym kontekście
ppCombined
poniżej jest IEnumerable
przedmiotem PersonProtocolType
, który jest zbudowany przez concat 2 PersonProtocol
list.
Dlaczego to się nie udaje? Czy nie możemy użyć klauzuli LINQ JOIN
wewnątrz SELECT
z JOIN
?
var persons = db.Favorites
.Where(x => x.userId == userId)
.Join(db.Person, x => x.personId, y => y.personId, (x, y) =>
new PersonDTO
{
personId = y.personId,
addressId = y.addressId,
favoriteId = x.favoriteId,
personProtocol = (ICollection<PersonProtocol>) ppCombined
.Where(a => a.personId == x.personId)
.Select(b => new PersonProtocol()
{
personProtocolId = b.personProtocolId,
activateDt = b.activateDt,
personId = b.personId
})
});
Related: [ LINQ, Nie można utworzyć stałej wartości typu XXX. W tym kontekście obsługiwane są tylko typy pierwotne lub typy wyliczeniowe] (http://stackoverflow.com/q/13405568/456814). –
Powiązane: [Nie można utworzyć stałej wartości - tylko typy pierwotne] (http://stackoverflow.com/q/10862491/456814). –