2008-11-28 29 views
5

Có cách nào để truy vấn hoặc chỉ truy cập đối tượng mới được thêm vào (sử dụng phương thức ObjectContext.AddObject) trong khung Entity Framework không? Tôi hiểu rằng các truy vấn được dịch sang SQL cơ bản và được thực hiện dựa trên lưu trữ dữ liệu, và nó chưa có đối tượng mới này. Nhưng dù sao, tôi tò mò - nếu nó không được hỗ trợ một cách chính thức, có lẽ nó là có thể trong lý thuyết. Nếu không, nhà phát triển có thể đối phó với nó như thế nào? Theo dõi thủ công các đối tượng mới và truy vấn chúng bằng cách sử dụng LINQ cho các đối tượng?Truy vấn đối tượng mới có thể có trong MS Entity Framework

Câu hỏi tương tự cũng áp dụng cho LinqToSql.

Trả lời

7

Trong EF, nếu bạn sử dụng mã này, bạn có tất cả các đối tượng mà đã được nạp trong bối cảnh (bao gồm cả những người mới được bổ sung):

context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Unchanged).Select(o => o.Entity).OfType<YourObjectType>() 
+0

Cảm ơn, tôi không còn làm việc với EF nữa, nhưng điều này hy vọng hữu ích. – Vladekk

2

"Vấn đề tương tự cũng áp dụng đối với LinqToSql."

Đối với LINQ-to-SQL, hãy xem DataContext.GetChangeSet(); này có 3 separate collections cho cấp phát .Inserts, .Updates.Deletes

Lưu ý rằng ChangeSet là một bản chụp của khi các phương pháp GetChangeSet() được gọi; bạn cần phải truy vấn lại để xem bất kỳ thay đổi bổ sung nào.

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