- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经尝试解决这个问题一天了,但一无所获,所以我希望有人可能已经解决了这个问题。我找到的最接近解决方案的是 How to simply map an NHibernate ISet to IList using AutoMapperVà Map IList to ICollection through AutoMapper但仍然没有快乐。
我有一个如下所示的数据对象:
public class Parent
{
public virtual ISet Children {get; set; }
}
还有一个如下所示的业务对象:
public class ParentDto
{
public IList Children {get; set; }
}
使用 AutoMapper 将数据映射到业务工作正常:
...
Mapper.CreateMap();
Mapper.CreateMap();
...
ParentDto destination = CWMapper.Map(source);
但是当我谈到从业务到数据的映射时,我得到了错误:
...
Mapper.CreateMap();
Mapper.CreateMap();
...
Parent destination = CWMapper.Map(source);
Unable to cast object of type 'System.Collections.Generic.List' to ''Iesi.Collections.Generic.ISet'
我添加了一个自定义映射:
Mapper.CreateMap()
.ForMember(m => m.Children, o => o.MapFrom(s => ToISet(s.Children)));
private static ISet ToISet(IEnumerable list)
{
Iesi.Collections.Generic.ISet set = null;
if (list != null)
{
set = new Iesi.Collections.Generic.HashedSet();
foreach (T item in list)
{
set.Add(item);
}
}
return set;
}
但我仍然得到同样的错误。任何帮助将不胜感激!
câu trả lời hay nhất
你可以使用AutoMapper的AfterMap()函数,像这样:
Mapper.CreateMap()
.ForMember(m => m.Children, o => o.Ignore()) // To avoid automapping attempt
.AfterMap((p,o) => { o.Children = ToISet(p.Children); });
AfterMap() 允许对 NHibernate 子集合处理的一些重要方面进行更细粒度的控制(例如替换现有集合内容而不是像这个简化示例中那样覆盖集合引用)。
关于c# - 使用 AutoMapper 将 IList
Có .collect có chỉ mục không? Tôi muốn làm một cái gì đó như thế này: def myList = [ [position: 0, name: 'Bob'], [position: 0, name: 'J
Tôi đã tạo một lớp Bộ sưu tập mở rộng ArrayList để thêm một số phương thức hữu ích. Nó trông như thế này: Bộ sưu tập lớp công khai mở rộng ArrayList {
Tôi biết nếu tôi có một phần tử và tôi muốn nhận Danh sách/Bộ/Bản đồ, tôi có thể gọi phần tử này: Collections.singleton()/Collections.singletonList()/Collectio
Tôi vừa thấy trong tệp pom của mình rằng Apache commons-collections có hai ID nhóm khác nhau: commons-collections commons-collect
Chúng tôi có thể sử dụng Collections.synchronizedCollection(Collection c) cho tất cả các đối tượng loại Bộ sưu tập như Tập hợp và Danh sách, đó là lý do tại sao chúng tôi có
Tôi có Danh sách > Tôi muốn nó sao chép mọi người từ bộ sưu tập trước sang bộ sưu tập Danh sách. Đây là những gì tôi làm: var People = new List>{ new List{...},... };
Những gì tôi đang cố gắng làm rất đơn giản bằng cách sử dụng một vòng lặp cũ tốt. Giả sử tôi có một đối tượng A chứa danh sách B. public class A { public List myListOfB } Trong một số phương thức khác, tôi có As
Trong cuộc phỏng vấn với Capgemini, tôi đã được hỏi một câu hỏi mà tôi không thể trả lời. Các phương thức chung cho tất cả các lớp và giao diện bộ sưu tập là gì? Câu trả lời hay nhất Tất cả các lớp đối tượng java (bao gồm tất cả các bộ sưu tập) đều được dẫn xuất từ lớp có tên Object
Tôi có một loạt các bảng cơ sở dữ liệu lưu trữ thông tin ước tính. Tôi đang cố gắng trả về tất cả dữ liệu từ tất cả các bảng cơ sở dữ liệu khi các ranh giới nhất định được đặt. Bộ sưu tập $estimateItems = Bộ sưu tập mới();
Tại sao việc triển khai Haskell lại tập trung vào danh sách liên kết đến vậy? Ví dụ: tôi biết rằng Data.Sequence hiệu quả hơn đối với hầu hết các thao tác danh sách (ngoại trừ các thao tác nhược điểm) và được sử dụng nhiều, tuy nhiên, về mặt cú pháp, nó "hầu như không được hỗ trợ". Có
Tôi đang cố gắng trả lại nội dung tôi yêu cầu trong PHP về JSON. Vấn đề của tôi là mỗi hàng tồn kho vẫn chưa kết thúc. Thực tế là nó đã được "rendered" nhưng "this.collection.models" vẫn chưa hoàn thành vì yêu cầu chưa hoàn thành. Tôi nên giải quyết thế nào
Về cơ bản, là một phần của tập lệnh Powershell, tôi cần triển khai tìm kiếm theo chiều rộng. Vì vậy, tôi cần hàng đợi và nghĩ rằng System.Collections.Queue cũng tốt như bất kỳ hàng đợi nào khác. Tuy nhiên, khi tôi lấy một đối tượng từ hàng đợi,
Đã đóng cửa. Câu hỏi này lạc đề. Câu trả lời không được chấp nhận vào thời điểm này. Bạn muốn cải thiện câu hỏi này? Đã cập nhật câu hỏi để nó phù hợp với chủ đề về Stack Overflow. Đóng cửa 10 năm trước. Cải thiện t
Xin chào, tôi không hiểu tại sao điều này không hoạt động? notification.update({'userId':Meteor.userId(), 'notifyUserId':notifyFriendId}, {$se
Giả sử tôi có một kết thúc: def tăng = {value, bước -> giá trị + bước } Bây giờ tôi muốn lặp qua từng mục trong bộ sưu tập số nguyên của mình, tăng thêm 5 và lưu các phần tử mới vào bộ sưu tập mới:
Thư mục bộ sưu tập bản sao của tôi không hiển thị tất cả các mục khi sử dụng chế độ xem từng trang. Về cơ bản tôi có 9 trang chứa các phần tử, nhưng trang 6 - 8 hiển thị nội dung giống hệt nhau. Do đó, không phải tất cả các mục đều được hiển thị, mặc dù tổng số mục tương ứng với các phần tử nên có trong bộ sưu tập
Private Map> map, trong đó ProgramCourse là lớp miền trong dự án của tôi và bản đồ ở trên là trường của lớp miền Program khi tôi chạy dự án. Sử dụng @OneToMan
Sự khác biệt chính giữa ba là gì? Bây giờ, tôi muốn tạo một cặp khóa/giá trị bằng chuỗi/chuỗi tương ứng. Cả ba dường như đều có những lựa chọn mà tôi có thể sử dụng. EDIT: Tôi chỉ muốn tạo một bảng băm đơn giản - không có gì quá phức tạp. Bộ sưu tập chung câu trả lời hay nhất gần như thay thế hoàn toàn cơ sở
Tôi đang sử dụng trình điều khiển mongodb cho NodeJ, có 3 phương thức: 1) db.collection.insert 2) cơ sở dữ liệu.collection.insertOne 3) db.col
Tôi có một bộ sưu tập và tôi đang cố gắng xóa các bản sao bằng phương pháp Riêng biệt. public static Bộ sưu tập imagePlaylist imagePlaylist = imagePlaylis
Tôi là một lập trình viên xuất sắc, rất giỏi!