Talvolta durante l'esecuzione ottengo l'errore sopra riportato. L'eccezione proviene da ASP.NET SqlDataReader ogni volta che si tenta di leggere i dati prima di chiamare il metodo Read(). Dal momento che EF fa tutto questo internamente, mi chiedo che altro possa causare questo errore. potrebbe essere la connettività di rete (o) db?'Tentativo non valido di leggere quando nessun dato è presente' - l'eccezione si verifica "a volte" in Entity Framework
grazie
aggiuntive Bounty Info (GenericTypeTea):
ho ottenuto lo stesso errore dopo l'aggiornamento a codice EF First RC (4.1):
"Tentativo non valido di leggere quando nessun dato è "
Questo è il codice in questione:
using (var context = GetContext())
{
var query = from item in context.Preferences
where item.UserName == userName
where item.PrefName == "TreeState"
select item;
// Error on this line
Preference entity = query.FirstOrDefault();
return entity == null ? null : entity.Value;
}
La struttura della tabella è la seguente:
Preference
{
Username [varchar(50)]
PrefName [varchar(50)]
Value [varchar(max)] Nullable
}
Il tavolo è autonoma e non ha rapporti. Questo è il codice DbModelBuilder:
private void ConfigurePreference(DbModelBuilder builder)
{
builder.Entity<Preference>().HasKey(x => new { x.UserName, x.PrefName });
builder.Entity<Preference>().ToTable("RP_Preference");
}
Esattamente lo stesso codice funziona perfettamente in CTP5. Sto indovinando che questo è un bug RC, ma qualsiasi idea su come risolverlo sarebbe apprezzata.
@Carnotaurus - Perché è interessato alla stringa "Valore". – anon
Perché "return entity" non è uguale a "return entity.value" ... –
@Ladislav - Nessuna necessità di name-calling. Il mio fondamento logico era che (proprio come i CTP), sarebbe utile avere tag per ciascuna versione prima della versione finale, nel caso ci fossero correzioni di bug o modifiche API. Ma rimanderò alla tua saggezza come membro onesto di SO. – anon