Имя шаблона для проецирования определенных классов DAL (таких как классы LINQ to SQL) в POCO - PullRequest
0 голосов
/ 13 марта 2009

Я изучал проект Oxite на Codeplex. Он имеет интерфейсы репозитория и реализацию, использующую LINQ to SQL. Результаты LINQ to SQL проецируются на объекты POCO в реализациях репозитория. Это выглядит примерно так:

public IQueryable<Post> GetPosts()
{
    return projectPosts(excludeNotYetPublished(getPostsQuery(siteID)));
}

Это интересный шаблон, поэтому я подумал, есть ли у него конкретное имя.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 13 марта 2009

Data Mapper. Смотрите здесь упомянутое http://www.martinfowler.com/eaaCatalog/repository.html

"В таких системах может оказаться целесообразным построить еще один уровень абстракции над уровнем отображения, где сосредоточен код построения запроса".

Обратите внимание, что существуют разные взгляды на это. Я бы сказал, что те, кто подписался на это, утверждают, что классы linq2sql специфичны для технологии доступа к данным, поэтому, я думаю, они видят в этом детали реализации репозитория.

Возможно, вы хотите спросить имя в «хранилище», которое возвращает IQueryable. Я не думаю, что есть общепринятое название для этого. Роб Коннери использовал это в своей серии магазинов asp.net mvc: http://blog.wekeroad.com/mvc-storefront. Если вы посмотрите на старые посты в блоге, вы увидите, что вызов репозитория на самом деле спорен.

1 голос
/ 13 марта 2009

Я думаю, что это больше шаблон Data Transfer Object (DTO), где результаты превращаются в DTO для передачи между слоями. См. Объект передачи данных .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...