Tôi đang sử dụng Entity Framework và tôi có một dòng mã đang dùng var và dịch nó trở lại một iint cho cơ sở dữ liệu.LINQ to Entities không nhận ra phương thức 'Int32 Parse (System.String)' và phương thức này không thể được dịch sang biểu thức cửa hàng
var record = context.enrollments.SingleOrDefault
(row => row.userId == int.Parse(UserID) && row.classId == int.Parse(ClassID));
Bất cứ khi nào tôi cố gắng chạy, tôi nhận được lỗi rhis. "LINQ to Entities không nhận ra phương thức 'Phương thức phân tích cú pháp Int32 (System.String)' và phương pháp này không thể được dịch sang biểu thức cửa hàng."
Tôi đã cố gắng này cũng
var record = context.enrollments.FirstOrDefault
(row => row.userId == Convert.ToInt32(UserID)
&& row.classId == Convert.ToInt32(ClassID));
và tất cả tôi nhận được là thông báo lỗi này, "LINQ to Entities không nhận ra phương pháp 'Int32 ToInt32 (System.String)' phương pháp, và phương pháp này có thể không được dịch sang một biểu hiện cửa hàng
và cuối cùng tôi đã cố gắng này là tốt, mà tôi biết là không bình thường, nhưng nó đã làm việc trong quá khứ cho các tình huống tương tự.
var record = context.enrollments.SingleOrDefault
(row => row.userId == CommonDLL.Sanitize<int>.ConvertType(UserID)
&& row.classId == CommonDLL.Sanitize<int>.ConvertType(ClassID));
Tôi bị lỗi này. Như bạn có thể thấy tôi đã thử bảy thứ khác nhau và không có gì làm việc, vì vậy bất kỳ sự trợ giúp nào cũng sẽ tuyệt vời.
Nếu tôi nhớ chính xác, bạn _should_ có thể thay thế 'int.Parse' bằng' Convert.ToInt32' để làm cho nó hoạt động. –
Tôi đã đề cập đến điều này trong các bình luận, nhưng tôi đã thử và tôi nhận được thông báo lỗi này, "{LINQ to Entities không nhận ra phương pháp 'Int32 ToInt32 (System.String)' phương pháp, và phương pháp này không thể dịch vào một biểu thức cửa hàng. "}" – SinceForever
Bạn đã thử sử dụng không gian tên đầy đủ như 'System.Convert.ToInt32' chưa? Tôi không biết đây có phải là thứ gì đó mà LINQ không hỗ trợ hay không. Chỉ cần đoán ở đây. – Bensonius