Вопрос по структуре

У меня есть проект ASP.NET MVC 2. Я отделил слои. У меня есть слой обслуживания и уровень хранилища. Контроллер вызывает методы обслуживания, и только уровень обслуживания вызывает методы в хранилище.

Проблема в том, что метод в моем классе репозитория использует соединения LINQ. Из этого метода я хотел бы вернуть тип со слиянием некоторых данных из объединенных таблиц. (т. е. Name = a.Name, Position = b.Position) И я всегда возвращаю IEnumerables в своем классе репозитория. Так что в этом случае, кажется, мне нужно определить новый тип для (Name, Position) и вернуть этот тип из функции репозитория. Но тогда мне придется переназначить этот класс на другой класс ViewModel. (Поскольку я разделяю проблемы, я не должен использовать классы viewmodel в репозитории, верно?) Это приводит ко многим различным классам. EF-классы, классы для объединенных таблиц и классы viewmodel.

Я на правильном пути?

Пожалуйста, просветите меня.

Спасибо

1 ответ

Решение

Рассмотрите возможность определения этих классов на уровне хранилища. По сути, это классы DTO, и звучит так, будто вы были на треке, который я бы выбрал.

Любая причина, почему вы ожидали переназначить этот класс в другой класс ViewModel?

public class EmpPosition()
{
    public property Name{get;set;}
    public property Position{get;set;}
}

//Repo
public IEnumerable<EmpPosition> GetEmployeePositions()
{}
Другие вопросы по тегам