Использование Linq с LLBLgen Pro
Я пытаюсь сделать следующее, используя MVC3, LLBLGEN PRO, и это выдает мне следующую ошибку:
Типы отображения: LLBLGenProQuery1 -> LLBLGenProQuery
1 SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery1[[Mail.DAL.EntityClasses.TblCostCentreEntity, Mail.DAL, Version=1.0.4638.16064, Culture=neutral, PublicKeyToken=null]] -> SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery
1 [[Mail.Model.CostCentre, Mail.Model, версия =1.0.0.0, культура = нейтральная, PublicKeyToken= ноль]]
Путь назначения: LLBLGenProQuery`1
Исходное значение: SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery`1[Mail.DAL.EntityClasses.TblCostCentreEntity]
Public Function GetAllCostCentres() As SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery(Of Model.CostCentre) Implements ICostCentreRepository.GetAllCostCentres
Dim metaData As New LinqMetaData
Dim q = From p In metaData.TblCostCentre _
Select p
Mapper.CreateMap(Of SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery(Of CostCentre), EntityClasses.TblCostCentreEntity)()
Mapper.Map(Of SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProQuery(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 q
End Function
1 ответ
Queryable
(Http://llblgen.com/documentation/3.5/LLBLGen%20Pro%20RTF/hh_goto.htm#Using%20the%20generated%20code/Linq/gencode_linq_gettingstarted.htm#LinqMetaData)
Это запрос, который заставит компилятор генерировать код, который создает во время выполнения дерево экземпляров Expression, представляющее весь запрос, короче говоря, дерево Expression. Дерево выражений не может быть выполнено напрямую, оно должно интерпретироваться для выполнения того, что указано внутри дерева выражений. Это то, что делает провайдер Linq, как Linq to LLBLGen Pro: он принимает дерево выражений, переводит его в элементы, которые он может понять, интерпретирует эти элементы и создает исполняемую форму этого запроса.
ILLBLGenProQuery (http://llblgen.com/documentation/3.5/LLBLGen%20Pro%20RTF/hh_goto.htm#Using%20the%20generated%20code/Linq/gencode_linq_gettingstarted.htm#ILLBLGenProQuery)
Интерфейс, определенный для элементов IQueryable, созданный LinqMetaData. Этот интерфейс позволяет выполнить запрос, вызвав метод Execute. Преимущество этого состоит в том, что вы можете получить результат запроса в его собственном контейнере, например, в коллекции сущностей. Другое преимущество состоит в том, что для получения списка результатов поставщику не нужно полностью просматривать результаты и копировать результаты в список: возвращенные результаты уже находятся в контейнере, в котором они изначально хранятся.