Ho due istruzioni select in LINQ con un Union
.Come assegnare una proprietà int nullo in un tipo anonimo in LINQ con un'unione?
A RoleID
deve avere un valore nullo in una delle selezioni. Sto ottenendo l'errore qui sotto.
Se il valore RoleID
ha un valore, funziona correttamente. Report è un'entità EF con proprietà.
Può essere qualsiasi cosa in questo esempio. L'esempio è semplice a scopo illustrativo.
Codice in LINQPad:
var list = Reports.Select(r => new
{
RoleID = 3
})
.Union(Reports.Select(r => new
{
RoleID = new Nullable<int>() <= error
//RoleID = (int?) null <= error
//RoleID = 4 <= works
}));
list.Dump();
Come faccio a farlo funzionare con un valore nullo e fare ID ruolo di tipo int?
messaggio di errore:
'System.Linq.IQueryable' non contiene una definizione per 'Unione' e la migliore overload metodo di estensione 'System.Linq.ParallelEnumerable.Union (System.Linq. ParallelQuery, System.Collections.Generic.IEnumerable)' ha alcuni argomenti non validi argomento grado: non si può convertire da 'System.Linq.IQueryable' a 'System.Linq.ParallelQuery'
Qualche commento sul downvote? L'OP ha indicato che 'RoleID = 4' lavora per loro ... – Kobi
Non è il mio downvote, ma non hai cambiato risposta? Sembra che tu abbia inizialmente modificato la parte 'Union' della query –
Ho bisogno che RoleID abbia un valore in uno dei selects.Proprio come in SQL, dove è possibile assegnare un valore nullo a un valore selezionato e in un'altra unione selezionare è possibile selezionare una colonna effettiva nella stessa posizione. Concat non fa differenza. Dà lo stesso errore. –