Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Entity Framework и 3-уровневая архитектура


Автор: MFSham 2.7.2014, 12:39
Добрый день всем.

Подскажите как правильно реализовать трехуровневую архитектуру.

Что есть:

DataLayer - Database First EF model (Repository + Unit of Work patterns)
BusinessLayer - модельки для приложения
PresentationLayer - ASP.NET web site

Все как бы хорошо и замечательно, но пока не могу понять как разрулить такую ситауцию - хочу получить данные из нескольких таблиц (Inner/left join). 
Допустим у нас есть 2 таблицы - визиты и клиенты. Надо достать имя клиента и инфу о визите. 

Код

select c.firstname, v.visitinfo from clients c
inner join visit v on v.clientid = c.clientid
where v.visitid = 12345
limit 1


В BusinessLayer создаю модельку под это дело и должен ее налить. 
А теперь основной "затык". 
Что мне возвращать в методе на уровне DataLayer? Ведь слой данных ничего не знает про модельку в BusinessLayer.

IQuerable?


Автор: Ilya81 2.7.2014, 14:33
Я обычно для таких случаев создаю разделяемый модуль с интерфейсами. В нём ж интерфейс для factory, который передаётся в BusinessLayer в качестве параметра при его создании (собственно, factory здесь нужен будет уже для записи в БД для создания экземпляров интерфейсов).

Автор: jonie 2.7.2014, 15:47
https://layersample.codeplex.com/releases/view/117278
вот тут можно посмотреть всякие примерчики для расширения кругозора

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)