Каково преимущество использования ПОСТЕПЕННО? Я не понимаю значение Незнания Персистентности, что это означает? То, что постепенно объект не может выставить вещи, любят, Сохраняют? Я не могу перенести голову вокруг этого ПОСТЕПЕННО, что существует много шума вокруг.
То, каково различие с EF, генерировало объекты и ПОСТЕПЕННО?
POCO означает «Обычный старый объект C #» или «Обычный старый объект CLR». в зависимости от того, кого вы спрашиваете. Если фреймворк или API заявляют, что он работает с POCO, это означает, что он позволяет вам определять вашу объектную модель идиоматически без необходимости наследовать ваши объекты от определенных базовых классов. Вообще говоря, фреймворки, которые работают с POCO, дают вам большую свободу и контроль над дизайном и реализацией ваших классов, потому что у них меньше требований для правильной работы.
Незнание персистентности означает, что, насколько это возможно, что-либо в вашем коде, работающее на уровне бизнес-логики или выше, ничего не знает о фактическом дизайне базы данных, о том, какой движок базы данных вы используете, или как и когда объекты извлекаются. из или в базе данных. В случае MEF игнорирование персистентности достигается за счет работы с POCO и использования LINQ для выполнения запросов (т. Е. Не требуя от пользователя создания каких-либо SQL-запросов для извлечения желаемых объектов).
Это открытый вопрос, но все согласны с тем, что в большинстве случаев объекты домена (или бизнес-объекты - в любом случае, упомянутые выше POCO) не должны учитывать логику сохранения. Это означает, что вместо вызова MyBusinessObject.Save ()
у вас есть диспетчер ввода-вывода или класс адаптера, и вы вызываете Manager.Save (MyBusinessObject)
. Таким образом, вы избегаете раскрытия семантики сохраняемости ваших бизнес-объектов - таким образом вы получаете лучшее разделение проблем.
POCO = Обычные старые объекты CLR.
Обычные старые объекты CLR (то есть C # или VB) означают, что я могу говорить на C # или VB все время, пока пишу свою программу, и мне не нужно беспокоиться о эзотерическом языке баз данных, таком как
UPDATE MYTABLE SET MYFIELD1 = @MYPARAMETER1, MYFIELD2 = @MYPARAMETER2 BLAH BLAH
Созданные объекты EF == POCO connected ( косвенно) в базу данных.