2016-11-03 16 views
5

Tôi có một vấn đềEntity Framework Load() không nạp tất cả mọi thứ

Tôi có một bảng với 44.839 hồ sơ

Nhưng khi tôi cố gắng để tải bảng của mình thông qua EF với mã này:

dbContext = new MyDbContext("MyContext"); 

dbContext.SalesRegister.Load(); 

BindingList<SalesRegister> db =dbContext.SalesRegister.Local.ToBindingList(); 

gridControl.DataSource = db; 

bsiRecordsCount.Caption = "RECORDS : " + db.Count; 

tôi chỉ nhận được 16.311 hồ sơ

Nhưng khi tôi sử dụng này tôi nhận được toàn bộ hồ sơ của tôi

dbContext = new MyDbContext("MyContext"); 

List<SaleRegister> db = dbContext.SalesRegister.SqlQuery("select * from vwSalesRegister").ToList(); 

gridControl.DataSource = db; 

bsiRecordsCount.Caption = "RECORDS : " + db.Count; 

Tại sao điều này xảy ra?

+0

@Ivan được rồi, âm thanh hợp lý, cảm ơn vì điều đó. – CodeCaster

+1

Nhìn vào tiền tố tên "vw", tôi đoán đây là chế độ xem db được ánh xạ. Bạn đã xác định một PK đúng chưa? –

+1

@IvanStoev hoàn toàn có ý nghĩa !!! có bạn đã đúng! Tôi hoàn toàn quên xác định PK ở phía cơ sở dữ liệu. Đó là giải pháp cho hành vi kỳ lạ này. Cảm ơn!! –

Trả lời

2

Và giải pháp cho điều này thực sự đơn giản !! Đảm bảo xác định PK trên cả hai mặt (mã & cơ sở dữ liệu). Nhờ @IvanStoev

Các vấn đề liên quan