Из подробностей вашего вопроса похоже, что вы используете Традиционную N-слойную архитектуру .В этой архитектуре уровень пользовательского интерфейса зависит от BLL, а BLL зависит от DAL.Это должна быть ваша справочная структура: проект пользовательского интерфейса ссылается на проект BLL, а проект BLL ссылается на проект DAL.
Для вас это означает, что вы не можете использовать классы из DAL в своем пользовательском интерфейсе;пользовательский интерфейс не должен знать о реализации DAL, потому что DAL может измениться (например, перейти от базы данных SQL Server к базе данных Oracle).Поэтому для передачи данных из DAL в BLL вам необходимо создать класс модели в вашей BLL и сопоставить с ним все данные из класса DAL.
Например, в вашей BLL вам нужночтобы добавить класс ReservationModel
, который будет сопоставлен с классом Reservation
в вашем DAL:
public class ReservationModel
{
// Add the same properties that are in the Reservation class in
// the DAL to this class. The properties below are just for example
public int ReservationId { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int CustomerId { get; set; }
}
Затем в BLL измените метод GetListReservation()
, чтобы он возвращал ReservationModel
со всеми сопоставленными даннымииз класса Reservation
в DAL:
public static List<ReservationModel> GetListReservation()
{
var reservationModels = new List<ReservationModel>();
foreach (var reservation in SelectListReservation())
{
reservationModels.Add(new ReservationModel
{
// Again, these are made-up properties for illustration purposes
ReservationId = reservation.ReservationId,
StartDate = reservation.StartDate,
EndDate = reservation.EndDate,
CustomerId = reservation.CustomerId
});
}
return reservationModels;
}