Tôi có hai mô hình cho biểu mẫu của tôi, một ViewModel sẽ đến nó, và một ControlModel đến từ nó. ControlModel có tất cả các tên và phân cấp trường giống nhau, nhưng tất cả các trường là một kiểu dữ liệu chuỗi.AutoMapper: Làm thế nào để phân tích một Int từ một String và có thể tạo ra các quy tắc dựa trên kiểu dữ liệu?
Làm cách nào để mã AutoMapper chuyển đổi trường chuỗi thành số nguyên? Tôi đã thử Int32.Parse (myString) nhưng Int32 không có sẵn trong biểu thức (đưa ra một lỗi).
Mapper.CreateMap<SourceClass, DestinationClass>()
.ForMember(dest => dest.myInteger,
opt => opt.MapFrom(src => src.myString));
Các loại trong lớp và các loại chuyển đổi tương ứng của họ:
chuỗi int, int ?, đôi, đôi ?, DateTime, và bool
Thêm vào đó, là có cách nào để khái quát ánh xạ theo cách mà tất cả các số nguyên trong mục tiêu được phân tích cú pháp với hàm đó? Nói cách khác, có cách nào để tạo ánh xạ cho các kiểu dữ liệu không?
EDIT:
này sẽ hứa hẹn:
AutoMapper.Mapper.CreateMap<string, int>()
.ConvertUsing(src => Convert.ToInt32(src));
EDIT: post Đây là thực sự hữu ích
Tại sao cậu lại nhận được chuỗi chỉ trong ControlModel của bạn? – Jaime
Điều này cho phép tôi đánh giá liệu dữ liệu có hợp lệ hay không. Nếu không, các giá trị không ánh xạ và bị loại bỏ trong mô hình ràng buộc. –
Lý do khác là MVC 2 Futures không lập bản đồ gấp đôi, số nguyên, và ngày tháng chính xác –