ASP.NET | MVC 4 | C# | WCFASP.NET MVC - Lớp học WCF cho Mô hình
Tôi đang sử dụng các dịch vụ web của WCF làm trung gian từ lớp trình bày (MVC) cho lớp dữ liệu (Thực thể). Để đơn giản hóa việc chuyển dữ liệu mô hình dữ liệu từ MVC sang dịch vụ web, tôi nghĩ tôi sẽ sử dụng các lớp proxy trong WCF, để có thể có một lớp tập trung. Thật không may, điều này gây ra sự mất mát của trang trí MVC trên các thuộc tính trong mô hình. Có cách nào tốt để tạo ra một lớp tập trung để sử dụng với một mô hình cho xem MVC, và cũng như một phương thức vận chuyển đến dịch vụ WCF?
Tự động đưa vào tâm trí như một lựa chọn, nhưng tôi tin rằng sẽ yêu cầu hai lớp giống hệt nhau. Một ở phía MVC và một ở phía WCF. Mà vẫn sẽ yêu cầu tôi thực hiện một sự thay đổi trên cả hai mặt nếu một tài sản thay đổi trong một lớp học.
Bất kỳ đề xuất nào khác sẽ được đánh giá cao. Cảm ơn!
EDIT :: Ví dụ
Đây là mô hình cho một trang có chứa một bảng các hồ sơ
public class ReconcileModel
{
#region PROPERTIES
public List<ReconcileItem> ReconcileItems { get; set;}
#endregion
#region CONSTRUCTORS
public ReconcileModel()
{
ReconcileItems = new List<ReconcileItem>();
}
#endregion
}
Dưới đây là một lớp học để đại diện cho mỗi bản ghi trong bảng đó.
public class ReconcileItem
{
#region PROPERTIES
public int ID { get; set; }
public string Description { get; set; }
public string LastLocation { get; set; }
public string LastRead { get; set; }
public string IntendenLocation { get; set; }
public string PickId { get; set; }
public string OEM { get; set; }
public string LotNumber { get; set; }
public string SerialNumber { get; set; }
public DateTime ExpirationDate { get; set; }
public string ReconcileReason { get; set; }
public string RemoveReason { get; set; }
#endregion
#region CONSTRUCTORS
public ReconcileItem()
{
}
#endregion
}
Hợp đồng đại diện WCF của lớp trên sẽ là
[DataContract]
public class ReconcileItem
{
[DataMemeber]
public int ID { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public string LastLocation { get; set; }
[DataMember]
public string LastRead { get; set; }
[DataMember]
public string IntendenLocation { get; set; }
[DataMemeber]
public string PickId { get; set; }
[DataMember]
public string OEM { get; set; }
[DataMember]
public string LotNumber { get; set; }
[DataMember]
public string SerialNumber { get; set; }
[DataMember]
public DateTime ExpirationDate { get; set; }
[DataMember]
public string ReconcileReason { get; set; }
[DataMember]
public string RemoveReason { get; set; }
}
Nếu tôi muốn cập nhật hồ sơ này, các lớp sẽ được gửi đến các dịch vụ WCF, ánh xạ đến các lớp học khuôn khổ tổ chức thích hợp, và lưu vào cơ sở dữ liệu. Để đơn giản hóa việc chuyển giao, tôi nghĩ rằng tôi sẽ chỉ đưa lớp này vào dự án WCF và tham khảo nó trong dự án MVC. Sau đó, tôi có thể vượt qua lớp trở lại ở giữa WCF và MVC. Ngoài ra, nếu tôi cập nhật lớp trong WCF thì nó sẽ được phản ánh trong MVC. Đó là những gì có nghĩa là tập trung.
Câu hỏi của bạn hơi mơ hồ. Bạn có thể trình bày cho chúng tôi một số mã, ví dụ như thể hiện ý nghĩa của bạn bằng 'lớp tập trung'? – Steven
@Steven xem chỉnh sửa và cho tôi biết nếu điều đó làm rõ mọi thứ. Cảm ơn! – Will