Tôi nghĩ rằng bạn chủ yếu trả lời câu hỏi của bạn. Việc tính toán phải được thực hiện trên máy chủ cơ sở dữ liệu và bạn chỉ muốn nhận được kết quả, phải không? Nếu bạn đang sử dụng SQL Server 2008, bạn có thể tạo quy trình được lưu trữ chấp nhận tham số có giá trị bảng
. Giờ đây, bạn có thể gọi quy trình này là trực tiếp bằng ADO.NET
hoặc sử dụng EF và context.ExecuteStoreQuery
nơi bạn vẫn vượt qua DataTable
thành SqlParameter
với SqlDbType.Structured
.
Nếu bạn không sử dụng SQL Server 2008, bạn cần thủ tục được lưu trữ với một tham số nvarchar lớn chuyển toàn bộ danh sách dưới dạng chuỗi được phân tách bằng dấu phẩy. Trước tiên, quy trình đã lưu trữ của bạn sẽ phân tích cú pháp danh sách này vào bảng tạm thời và sau đó xử lý tính toán theo cách tương tự như với tham số có giá trị của bảng.