Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Entity Framework и 3-уровневая архитектура, Entity Framework, 3 tier architecture 
:(
    Опции темы
MFSham
Дата 2.7.2014, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: нет
Всего: 3



Добрый день всем.

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

Что есть:

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?



Это сообщение отредактировал(а) MFSham - 2.7.2014, 14:37
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
Ilya81
Дата 2.7.2014, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.4.2014
Где: ЛО, Всеволожский р-н

Репутация: 1
Всего: 4



Я обычно для таких случаев создаю разделяемый модуль с интерфейсами. В нём ж интерфейс для factory, который передаётся в BusinessLayer в качестве параметра при его создании (собственно, factory здесь нужен будет уже для записи в БД для создания экземпляров интерфейсов).
PM MAIL ICQ Skype   Вверх
jonie
Дата 2.7.2014, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



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


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1210 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.