Tôi có một LINQ to Entities truy vấn như thế này:LINQ trả về danh sách hoặc đơn đối tượng
var results = from r in entities.MachineRevision
where r.Machine.IdMachine == pIdMachine
&& r.Category == (int)pCategory
select r;
Thông thường, tôi sử dụng mã dưới đây để kiểm tra xem một số kết quả được trả về:
if (results.Count() > 0)
{
return new oMachineRevision(results.First().IdMachineRevision);
}
Tuy nhiên , Tôi nhận được NotSupportedException trong điều kiện nếu.
Thông báo lỗi là: Không thể tạo giá trị không đổi loại 'Loại đóng cửa'. Chỉ các kiểu nguyên thủy ('như Int32, String và Guid') mới được hỗ trợ trong ngữ cảnh này.
Lưu ý rằng pCategory là loại Enum.
Vẫn không hoạt động, bởi vì chúng tôi đang cố gắng thực thi FirstOrDefault() phương pháp trên một đối tượng thực thể (đó là những gì được trả về bởi câu lệnh linq) và không phải là một IEnumerable –
Chọn luôn trả về một IEnumerable, xem tài liệu ở đây http://msdn.microsoft.com/en-us/library/bb548891.aspx. Bạn có chắc chắn không mũ ví dụ là chính xác giống như mã của bạn? – tvanfosson
Sai lầm của tôi, tôi xin lỗi vì điều đó. Để đơn giản hóa mã, tôi đã xóa một enum, giống như tvanfosson nhận thấy bởi thông báo lỗi tôi nhận được. Cảm ơn tất cả và xin lỗi vì đã gây hiểu lầm cho bạn. –