2

Я изучаю ServiceStack и архитектуру лука, и у меня есть вопрос, который кажется таким основным, что я чувствую, что что-то упускаю.Отделка доменных объектов в ServiceStack с луковой архитектурой

У меня есть три проекта: Api, Core и Infrastructure.

У меня есть ServiceStack в проекте API. У меня есть объекты объекта в моем основном проекте, мои классы доступа к данным находятся в моем проекте инфраструктуры. Я должен украсить объекты сущности атрибутами, чтобы код Orm Lite знал, как действовать с ними (создание таблиц и т. Д.). Это атрибуты, такие как [AutoIncrement] и [Index].

Мне нужно ссылаться на ServiceStack в моем ядре, чтобы получить доступ к атрибутам, и ядро ​​до этого момента не зависело ни от чего, и это нарушает идею луковой архитектуры.

Что мне не хватает? Как разрешить OrmLite в проекте Infrastructure обрабатывать доступ к данным для моих объектов, в то время как объекты находятся в ядре?

ответ

0

Это проблема с Ormlite. Я создал билет долгое время назад, чтобы переместить атрибуты в общую сборку, но изменение кода еще не произошло. Если вы можете переместить атрибуты в общую сборку и выполнить запрос на перенос, мы добавим его.

+0

Эй, Гуру, проверьте [Обновление OrmLite v4] (https://plus.google.com/106787359118990653189/posts/Sbd5113dRrd). Все атрибуты теперь перемещены в ServiceStack.Interfaces и, где возможно, они слабо связаны по имени (т. Е. Вместо этого вы можете использовать System.ComponentModel.DataAnnotations). Также теперь можно добавлять атрибуты во время выполнения (http://bit.ly/1e5IQqS), то есть отключать от POCOs. – mythz

+0

Спасибо, Demis. Я все еще использую 3.x, поэтому я не видел этих изменений. –

+0

Спасибо @ гуру-катиреан и миф ... рад видеть, что я просто не пропустил что-то большое. – Mike