public static void MyFunction(MyErrorClass err)
{
var query = from filter in DataContext.ErrorFilters select filter;
query = query.Where(f => err.ErrorMessage.Contains(f.ErrorMessage));
List<ErrorFilter> filters = query.ToList();
//...more code
}
Vì vậy, tôi gặp một số vấn đề với mã ở trên và tôi gặp lỗi từ dòng chủ đề tại dòng với query.ToList()
. Dưới đây là những gì tôi đang cố gắng làm:"Chỉ các đối số có thể được đánh giá trên máy khách mới được hỗ trợ cho phương thức String.Contains"
Trước hết, tôi có một lớp lỗi tùy chỉnh, MyErrorClass
. Bất cứ khi nào xảy ra lỗi trên trang web của tôi, tôi tạo đối tượng MyErrorClass
từ ngoại lệ, lưu trữ tất cả dữ liệu từ ngoại lệ trong đối tượng đó và lưu trữ thông tin trong cơ sở dữ liệu.
Một trong những thuộc tính ngoại lệ mà tôi theo dõi là thông báo lỗi (ErrorMessage
). Tôi có một bảng ErrorFilters
được thiết lập trong cơ sở dữ liệu nơi người dùng có thể lọc lỗi dựa trên số ErrorMessage
. Vì vậy, nói rằng bạn đang nhận được một tấn lỗi nói rằng "System.Data.SqlClient.SqlException: Timeout hết hạn. Thời gian chờ hết hạn trước khi hoàn thành hoạt động hoặc máy chủ không đáp ứng.", Và bạn muốn bỏ qua chúng. Bạn chỉ cần thêm một bộ lọc vào cơ sở dữ liệu với ErrorMessage là "hết thời gian chờ" và đặt nó thành bỏ qua.
Bây giờ, lớp của tôi ở trên được đặt để có lỗi và quyết định xem có nên lọc lỗi hay không. Tôi đang cố gắng để có được danh sách tất cả các bộ lọc có số ErrorMessage
phù hợp với lỗi đó.
Tôi chắc chắn đây là cách khắc phục dễ dàng, tôi chỉ không biết cách khắc phục.
Phương pháp này sẽ bị hủy, bạn phải làm gì? Nếu nó phải kiểm tra xem lỗi có được hiển thị hay không, thì nó sẽ trả về một boolean và một sửa chữa có thể được tìm thấy. Khác, giải thích câu hỏi tốt hơn một chút. –
Chức năng đang thực hiện rất nhiều thứ khác không liên quan đến lỗi, tất cả những vấn đề đó là 3 dòng mà tôi đang cố gắng lấy danh sách các bộ lọc phù hợp với lỗi. Tôi đã giải thích mọi thứ bạn cần biết, bạn còn thắc mắc gì nữa? –