Tôi gặp lỗi trên đôi khi trong khi đọc. Ngoại lệ bắt nguồn từ ASP.NET SqlDataReader bất cứ khi nào bạn cố đọc dữ liệu trước khi gọi phương thức Read(). Vì EF thực hiện tất cả các nội bộ này, tôi tự hỏi điều gì khác có thể gây ra lỗi này. nó có thể là kết nối mạng (hoặc) db không?'Cố gắng không hợp lệ để đọc khi không có dữ liệu' - ngoại lệ xảy ra "đôi khi" trong Entity Framework
nhờ
bổ sung Bounty Thông tin (GenericTypeTea):
Tôi đã có những lỗi tương tự sau khi nâng cấp lên EF Mã Đầu RC (4.1):
"nỗ lực không hợp lệ để đọc khi không có dữ liệu có mặt "
Đây là mã trong câu hỏi:
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;
}
Cấu trúc bảng như sau:
Preference
{
Username [varchar(50)]
PrefName [varchar(50)]
Value [varchar(max)] Nullable
}
Bảng này là độc lập và không có mối quan hệ. Đây là mã DbModelBuilder:
private void ConfigurePreference(DbModelBuilder builder)
{
builder.Entity<Preference>().HasKey(x => new { x.UserName, x.PrefName });
builder.Entity<Preference>().ToTable("RP_Preference");
}
Chính xác cùng một mã hoạt động hoàn hảo trong CTP5. Tôi đoán đây là một lỗi RC, nhưng bất kỳ ý tưởng nào về cách khắc phục nó sẽ được đánh giá cao.
@Carnotaurus - Vì anh ấy quan tâm đến chuỗi "Giá trị". – anon
Vì "thực thể trả lại" không giống như "return entity.value" ... –
@Ladislav - Không cần phải gọi tên. Lý do của tôi là (giống như của CTP), sẽ có giá trị khi có thẻ cho mỗi phiên bản trước khi phát hành cuối cùng, trong trường hợp có sửa lỗi hoặc thay đổi API. Nhưng tôi sẽ trì hoãn sự khôn ngoan của bạn như là một thành viên của SO. – anon