2012-09-13 29 views
6

Tôi đang cố trả về một đối tượng IQueryable ở một trong các chức năng của tôi và sử dụng ánh xạ (Automapper). Nó quản lý để trả lại một đối tượng tốt IEnumerable nhưng ngay sau khi tôi cố gắng để trả về một đối tượng IQueryable nó ném cho tôi một lỗi:Sử dụng Automapper để trả lại IQueryable

Đây là lỗi:

Thiếu cấu hình loại bản đồ hoặc bản đồ không được hỗ trợ.

loại Mapping: LLBLGenProQuery 1 -> CostCentre SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery 1 [[Mail.DAL.EntityClasses.TblCostCentreEntity, Mail.DAL, Version = 1.0.4638.16064, Văn hóa = trung tính, PublicKeyToken = null]] -> Mail.Model.CostCentre

con đường

Điểm đến: CostCentre

giá trị Nguồn: SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery`1 [Mail.DAL.EntityClasses.TblCostCentreEntity]

Đây là mã:

Dim Metadata As New LinqMetaData q Dim = Từ p Trong metaData.TblCostCentre _ Chọn p Mapper.CreateMap (Tất TblCostCentreEntity, CostCentre)()

Dim t As IEnumerable(Of CostCentre) = Mapper.Map(Of CostCentre)(q) 
    'Select New CostCentre With {.Active = p.Active, .CostCentre = p.CostCentre, .CreatedBy = p.CreatedBy, .DateCreated = p.DateCreated, .DateLastModified = p.DateLastModified, .ModifiedBy = p.ModifiedBy, .CostCentreID = p.CostCentreId} 

    Return t 
+0

Vui lòng tham khảo [câu hỏi này] (http://stackoverflow.com/questions/2212126/does-automapper-support-linq/12365931#12365931) để có giải pháp thích hợp. – Alisson

Trả lời

3

Để Automapper để thực sự thực hiện việc lập bản đồ , nó phải xem từng phần tử trong IQueryable. Khi bạn đã lặp qua một truy vấn, nó không thể truy vấn được vì nó đã được truy vấn.

+0

Làm cho tinh thần. Cảm ơn bạn. – Baahubali

+0

Liên kết này giải thích thêm về điều này (chỉ dành cho người dùng llblgen) - http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=17364 – Baahubali

+7

Không chính xác: Vui lòng xem http://stackoverflow.com/a/12365931/178620 cho giải pháp. –

Các vấn đề liên quan