Tôi đang làm việc với EF và có một số truy vấn. Đây là mã của tôiPhương thức tĩnh LINQ trong câu lệnh SELECT
IEnumerable<Customer> customers = from c in context.Customers
select new Customer
{
ID = c.ID,
Name = c.Name,
LastName = c.LastName,
DepID = c.DepID,
Editable = SomeStruct.Check(c.DepID)
}
public struct SomeStruct
{
public static bool Check(int depID)
{
//Here I have some logic
}
}
Nó hoạt động tốt. Tuy nhiên, nếu tôi tuyên bố SomeStruct
là class
thì sẽ không thành công.
Câu hỏi của tôi là:
- Tại sao nó xảy ra?
- Việc sử dụng chức năng tĩnh có buộc truy vấn thực thi không?
tôi có thể xác nhận: nếu 'SomeStruct' là một' lớp', nhưng phương thức vẫn là 'tĩnh', thì nó * không * hoạt động - tôi có hiểu đúng không? Nếu vậy: chuyện gì xảy ra? Ngoại lệ là gì? –
Bạn có thực sự chắc chắn rằng mã của bạn đang hoạt động khi SomeStruct là cấu trúc? Bạn có thể vui lòng thêm ToList() vào câu lệnh chọn của bạn và xem mọi thứ vẫn hoạt động không? –