Tôi đang sử dụng Entity Framework 5 trong Cơ sở dữ liệu Phương pháp tiếp cận đầu tiên và tôi đang sử dụng tệp edmx.Lớp cơ bản/Thực thể trong EntityFramework 5.0
Hầu hết các pháp nhân của tôi có 6 trường phổ biến. Các trường như CreatedAt
, CreatedBy
vv Bây giờ, tôi đã triển khai một số chức năng dưới dạng tiện ích mở rộng chỉ có thể được áp dụng cho IQueryable
của những Thực thể có các trường chung. Nhưng khi tôi thực hiện phương pháp mở rộng, nó có thể được truy cập bởi bất kỳ loại IQueryable
vì nó được gõ T và tôi chỉ có thể xác định rằng loại T phải luôn luôn là một loại.
Vì vậy, tôi nghĩ rằng tôi có thể cung cấp một lớp cơ sở cho các thực thể có các trường chung và xác định loại T làm loại cơ sở đó. Nhưng, có vẻ như tôi không thể làm điều này.
Bất kỳ ý tưởng nào về cách giải quyết vấn đề này hoặc thực hiện những gì tôi đã giải thích ở trên?
Cảm ơn phản hồi nhanh chóng của bạn. Vì vậy, nếu tôi xác định giao diện bên ngoài tệp edmx. sau đó tôi sẽ nói với thực thể để thực hiện từ giao diện đó. Không dễ dàng chỉnh sửa thủ công tất cả các thực thể được yêu cầu vì tôi sẽ phải thực hiện lại lần nữa khi tôi cập nhật tệp edmx. – Amila
Bạn không chạm vào mã được tạo tự động. Đó là những gì các lớp học một phần được cho là được sử dụng cho. Bạn tạo một lớp một phần (trong thư mục Models) cho mỗi thực thể của bạn trong EF. Đó là nơi bạn có thể xác định một MetadataType cho Mô hình của bạn (để chú thích dữ liệu). Xem câu trả lời được cập nhật. – ataravati
Có, tôi đang sử dụng MetadataType tại thời điểm này. Nhưng nghĩ rằng có thể có một cách dễ dàng để làm điều đó, tức là giống như đưa ra một lớp cơ sở cho một thực thể, nó sẽ tốt hơn nếu nó được phép đưa ra một giao diện cũng như trong sơ đồ. Dù sao, nó loos như tôi sẽ phải xác định các lớp một phần cho tất cả các thực thể. Cảm ơn bạn đã giúp đỡ nhanh chóng – Amila