Tôi sử dụng MVC4 và khung thực thể 5 trong dự án của tôi và tôi đã có rất nhiều bảng. Theo quy định của dự án của chúng tôi, chúng tôi không xóa bất kỳ bản ghi nào khỏi cơ sở dữ liệu, mỗi bản ghi có trường isActive và nếu trường đó là sai, thì chúng tôi xem xét nó đã bị xóa. Tôi muốn viết một phương pháp mở rộng để có được hồ sơ hoạt động và sau khi một số googling tôi đã viết này:Có quyền sử dụng các phương pháp mở rộng trong trường hợp của tôi không?
public static IQueryable<Company> GetAll(this IQueryable<Company> source)
{
return source.Where(p => p.isActive);
}
Bây giờ tôi có thể sử dụng phương pháp khuyến nông của tôi để có được hồ sơ chỉ hoạt động như
Context db = new Context();
db.Company.GetAll();
Nhưng giả sử tôi đã có hơn 50 bảng trong cơ sở dữ liệu của tôi, đó là một cách tiếp cận tốt để viết cùng một phương thức mở rộng cho mỗi bảng của tôi. Có cách nào tốt hơn để viết một phương thức mở rộng GetAll() duy nhất cho tất cả các bảng của chúng ta không? Trên thực tế tôi thậm chí không chắc chắn nếu nó là đúng cách để sử dụng các phương pháp mở rộng cho trường hợp này?
Ai đó có thể giúp tôi và chỉ cho tôi đúng cách không? Tôi đánh giá cao nếu bạn giúp đỡ với các ví dụ mã.
Cảm ơn bạn đã trả lời nhanh LordCover. Tôi sử dụng phương pháp tiếp cận cơ sở dữ liệu đầu tiên. EF5.x DbContextGenerator có phải là trình tạo lớp POCO bình thường không? Nếu tôi không tìm thấy máy phát điện POCO bình thường ở đâu? Nhân tiện, trong ví dụ của bạn không có định nghĩa cho "nguồn". – cck
Tôi biết, 'nguồn' chỉ là Bộ đối tượng là tập hợp các đối tượng. –
Nhưng làm thế nào để chúng ta nói rằng nó có trường isActive? Trình biên dịch đưa ra một lỗi như "không có trường như vậy"? Tôi đoán tôi phải chuyển sang lớp Công ty, nhưng không có gì thay đổi, tôi sẽ phải làm điều đó cho tất cả các bảng của mình? – cck