9

Có phải SaveChanges() cần thiết với chức năng nhập (thủ tục lưu sẵn)?Là SaveChanges() cần thiết với chức năng nhập khẩu (lưu trữ thủ tục)?

Ví dụ:

void foo(Product product) 
{ 
    // AddProduct is a function import of a stored procedure 
    entities.AddProduct(product.Name, product.Price, product.Description); 

    entities.SaveChanges(); // Is this necessary? 
} 
+8

bạn đã thử chưa? :) – AndrewC

+0

Tôi có. Nó dường như không tạo nên sự khác biệt nào cả. Các thủ tục được lưu trữ cơ bản được gọi là. Có lẽ tôi nên lặp lại và hỏi, 'Tôi nên gọi SaveChanges()?' -Nó không rõ ràng với tôi do thiếu tài liệu, nếu tôi nên hay không nên. – Didaxis

Trả lời

11

Theo MSDN, SaveChanges

vẫn tồn tại tất cả các bản cập nhật cho các nguồn dữ liệu và resets thay đổi theo dõi trong bối cảnh đối tượng.

Tức là, đối với bất kỳ thực thể nào được đính kèm theo ngữ cảnh và bạn đã thêm, sửa đổi hoặc xóa, EF sẽ tạo mã SQL tương ứng và chạy nó dựa vào cơ sở dữ liệu. Trong trường hợp của bạn, bạn đã chạy mã SQL (nhiều hơn hoặc ít hơn) trực tiếp đối với cơ sở dữ liệu bằng cách gọi thủ tục được lưu trữ AddProduct. Vì vậy, trong trường hợp của bạn SaveChanges sẽ không làm bất cứ điều gì và không cần thiết (trừ khi bạn có các thay đổi chưa lưu khác trên ObjectContext tất nhiên).

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