Utilizzo di EF Core 1.1
e Asp Core 1.1
su Mac
Con un modello come
public class Model {
public int? Id { get; set; }
public string OtherProp { get; set; }
}
E un'azione
public class ModelController
{
public Model Get(int? id)
{
DbContext.Set<Model>.Find(id)
}
}
L'accesso all'URL /model/10
non riesce con un messaggio The key value at position 0 of the call to 'DbSet<Model>.Find' was of type 'int', which does not match the property type of 'Nullable<int>'
Il messaggio di errore è chiaro ma la mia domanda è se c'è un modo per farlo funzionare, sembra un caso d'uso molto comune e uno che funzionava nelle versioni precedenti.
Ho provato a lanciare id
su int?
ma non ha funzionato. Qualche idea?
Inoltre, nel caso in cui sia utile questa è la linea che si sta rompendo in EF
Osservando il codice che hai già collegato: questo non può funzionare, poiché il CLR ti fornisce sempre il tipo sottostante per un'istanza null-able. (Non so perché, ha avuto problemi simili prima ...)
Nel codice: typeof(int?) != ((int?)1).GetType()
.
Quindi, il confronto tra il tipo della proprietà ( int?
) E il tipo dell'argomento fallirà sempre. Devi chiedere al team EF Core di aggiungere supporto per i tipi null-adatti per questo.
Relativo: Il tipo di Nullable non è un tipo nullable?