У меня есть класс BLL, который содержит свойства для полей в таблице Country (CountryCode, CountryName и т. Д.). Он также имеет свойство ioDAL, которое является ссылкой на класс DAL (созданный с помощью SubSonic 2.2), который имеет поля с такими же именами.
У меня есть метод LoadRecord (), который вызывает метод DAL FetchById (), который заполняет свойства DAL путем вызова базы данных (SQL Server 2005 FWIW).
То, что я затем хочу сделать, вместо того, чтобы писать код для заполнения каждого свойства BLL из его эквивалента DAL, - это использовать AutoMapper (из CodePlex). Я думаю, что строка должна быть что-то вроде
Mapper.CreateMap(ioDAL, Me)()
, но это приводит к ошибкам «Значение типа (именование класса / пространства имен DAL) не может быть преобразовано в« System.Type »» и «Значение типа (именование класса / пространства имен BLL) не может быть преобразовано в« System.Type » .
Может кто-нибудь дать мне руководство относительно того, каким должен быть этот звонок? (VB.NET VS2005)
РЕДАКТИРОВАТЬ 13-Jan-10 - Джимми попросил меня показать еще немного кода:
Imports System
Imports System.ComponentModel
Imports AutoMapper
Public Class Country_POCO_Business
' Define property as reference to the relevant DAL class
Public Property ioDAL() As DAL_VB.Test.Country
' rest of property definition here...
End Property
Public Property CountryPk() As String
' rest of property definition here...
End Property
' and so on for other field properties...
Function LoadRecord(ByVal tcPK As String) As Boolean
ioDAL = DAL_VB.Test.Country.FetchByID(tcPK)
If ioDAL.CountryPk = tcPK Then
' set the values for the B/O properties from the DAL equivalents
' THIS IS WHERE THE ERROR OCCURS...
Mapper.CreateMap(ioDAL, Me)()
Return True
Else
Return False
End If
End Function
End Class