Tôi đang sử dụng MiniProfiler để cấu hình các lệnh sql của mình.Nhận SqlBulkCopy hiển thị dưới dạng sql trong MiniProfiler
Một vấn đề mà tôi đang giải quyết bây giờ là lặp lại các câu lệnh INSERT được tạo bởi LINQ.
Tôi đã chuyển đổi chúng thành lệnh SqlBulkCopy
, tuy nhiên hiện tại dường như không ghi lại trong chế độ xem sql trong MiniProfiler.
Thậm chí có một chuỗi lệnh được liên kết cho SqlBulkCopy không?
Có thể sao chép hàng loạt để xuất hiện trong danh sách lệnh sql không?
Tôi có thể ít nhất làm cho nó được tính trong bit% sql không?
Tôi biết mình có thể sử dụng MiniProfiler.Current.Step("Doing Bulk Copy")
nhưng không được tính là SQL và sẽ không hiển thị trong danh sách với bất kỳ chi tiết nào.
mã hiện dưới đây:
public static void BulkInsertAll<T>(this DataContext dc, IEnumerable<T> entities)
{
var conn = (dc.Connection as ProfiledDbConnection).InnerConnection as SqlConnection;
conn.Open();
Type t = typeof(T);
var tableAttribute = (TableAttribute)t.GetCustomAttributes(
typeof(TableAttribute), false).Single();
var bulkCopy = new SqlBulkCopy(conn)
{
DestinationTableName = tableAttribute.Name
};
//....
bulkCopy.WriteToServer(table);
}
Dữ liệu đang được gửi như các gói TDS đặc biệt, nhưng tôi không biết liệu 'RỜI INSERT' đang được khởi xướng sử dụng SQL. Nó hiển thị trong SQL Profiler như SQL, nhưng điều đó có thể là giả mạo. – usr
Tôi đang làm việc trên [MiniProfiler 3.0] (https://github.com/MiniProfiler/dotnet) để thêm lớp 'CustomTiming' chung hơn, cho phép bạn lập hồ sơ" bản sao hàng loạt "và hiển thị nó trong giao diện người dùng theo cùng một cách "sql". Một khi nó ra, tôi sẽ trả lời với một ví dụ. –
@JarrodDixon: Tuyệt vời! Bất kỳ ý tưởng về thời gian (hơn 6-8 tuần)? :) –