Ứng dụng tôi hiện đang xây dựng đã sử dụng các thủ tục được lưu trữ và các mô hình lớp thủ công để thể hiện các đối tượng cơ sở dữ liệu. Một số người đã đề xuất sử dụng Entity Framework và tôi đang xem xét chuyển sang đó vì tôi không tham gia dự án. Vấn đề của tôi là, tôi cảm thấy những người tranh luận về EF chỉ nói cho tôi biết mặt tốt của mọi thứ chứ không phải mặt xấu :)
Mối quan tâm chính của tôi là:
- Chúng tôi muốn xác thực phía máy khách bằng cách sử dụng DataAnnotations và có vẻ như tôi phải tạo các mô hình phía máy khách bằng mọi cách vì vậy tôi không chắc chắn rằng EF sẽ tiết kiệm được nhiều thời gian mã hóa đó
- Chúng tôi muốn giữ cho các lớp càng nhỏ càng tốt khi truy cập mạng và tôi đã đọc được rằng sử dụng EF thường bao gồm các dữ liệu bổ sung không cần thiết
- Chúng tôi có một lớp cơ sở dữ liệu phức tạp vượt qua nhiều cơ sở dữ liệu và tôi không chắc rằng EF có thể xử lý việc này. Chúng tôi có một cơ sở dữ liệu chung với những thứ như Người dùng, StatusCodes, Loại, v.v. và nhiều phiên bản của cơ sở dữ liệu chính của chúng tôi cho các phiên bản khác nhau của ứng dụng. Các truy vấn CHỌN có thể và sẽ truy vấn trên tất cả các phiên bản của cơ sở dữ liệu, tuy nhiên người dùng chỉ có thể sửa đổi các đối tượng trong cơ sở dữ liệu mà họ hiện đang làm việc. Họ có thể chuyển đổi cơ sở dữ liệu mà không cần tải lại ứng dụng.
- Các chế độ đối tượng rất phức tạp và thường có khá nhiều liên kết tham gia
Các đối số cho EF là:
- Đồng thời. Tôi sẽ không phải viết mã trong kiểm tra để xem bản ghi đã được cập nhật trước mỗi lần lưu chưa
- Tạo mã. EF có thể tạo các mô hình lớp và POCO một phần cho tôi, tuy nhiên tôi không tích cực, điều này thực sự sẽ giúp tôi tiết kiệm được nhiều thời gian vì tôi nghĩ chúng ta vẫn cần tạo các mô hình phía máy khách để xác thực và một số phương pháp phân tích tùy chỉnh.
- Tốc độ phát triển vì chúng ta sẽ không cần tạo các thủ tục lưu sẵn CRUD cho mọi đối tượng cơ sở dữ liệu
Kiến trúc hiện tại của chúng tôi bao gồm Dịch vụ WPF xử lý các cuộc gọi cơ sở dữ liệu thông qua các Thủ tục lưu trữ được tham số hóa, các đối tượng POCO đi đến / từ dịch vụ WCF và ứng dụng khách WPF và máy khách máy tính để bàn WPF chuyển đổi POCO thành Mô hình lớp cho mục đích Xác thực và Liên kết dữ liệu.
Vì vậy, câu hỏi của tôi là, liệu EF có phù hợp với điều này? Có bất kỳ cạm bẫy nào về EF mà tôi không biết?