Otrzymuję powyższy błąd czasami podczas odczytu. Wyjątek pochodzi z programu ASP.NET SqlDataReader za każdym razem, gdy próbuje się odczytać dane przed wywołaniem metody Read(). Ponieważ EF robi wszystko wewnętrznie, zastanawiam się, co jeszcze może spowodować ten błąd. czy może to być sieć (lub) połączenie db?"Nieprawidłowa próba odczytania, gdy brak danych" - wyjątek się dzieje "czasami" w Entity Framework
dzięki
dodatkowe Bounty Info (GenericTypeTea):
Mam ten sam błąd po aktualizacji do EF Code First RC (4.1):
„Nieprawidłowa próba odczytać, gdy nie ma danych "
To jest kod w pytaniu:
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;
}
Struktura tabeli jest następująca:
Preference
{
Username [varchar(50)]
PrefName [varchar(50)]
Value [varchar(max)] Nullable
}
Stół jest samodzielna i nie ma żadnych relacji. To jest kod DbModelBuilder:
private void ConfigurePreference(DbModelBuilder builder)
{
builder.Entity<Preference>().HasKey(x => new { x.UserName, x.PrefName });
builder.Entity<Preference>().ToTable("RP_Preference");
}
Dokładnie ten sam kod działa doskonale w CTP5. Zgaduję, że jest to błąd RC, ale wszelkie pomysły, jak to naprawić, byłyby mile widziane.
@Carnotaurus - Ponieważ interesuje go ciąg "Wartość". – anon
Ponieważ "jednostka zwrotu" nie jest tym samym, co "return entity.value" ... –
@Ladislav - Nie ma potrzeby wywoływania imienia. Myślałem, że (podobnie jak CTP) warto mieć tagi dla każdej wersji przed ostatecznym wydaniem, na wypadek gdyby pojawiły się poprawki lub zmiany API. Ale odradzam twoją mądrość jako szanujący się członek SO. – anon