Непосредственно к использованию самого экземпляра объекта POCO? Нет.
По крайней мере, я бы не знал. Джон Скит должен быть в состоянии предоставить больше информации, потому что он знает внутреннюю работу компилятора насквозь, поэтому он точно знает, что происходит с этими метаданными после их компиляции.
Другие последствия, косвенно связанные с этим
Конечно, при доступе к этим декларативным атрибутам есть определенные последствия, потому что они считываются с использованием отражения, которое обычно является медленным процессом.
Но здесь не о чем беспокоиться, потому что PetaPoco — это умная библиотека, которая читает их только один раз, а затем компилирует и кэширует эти вещи, поэтому вы получаете штраф только один раз, а затем получаете молниеносную производительность. Потому что он использует скомпилированный код.
Последствия, не связанные с производительностью
Помещая атрибуты (любые) в свои классы/свойства/методы, вы каким-то образом привязываете свой код к конкретному движку, который будет использовать этот класс, потому что они являются директивами для этого конкретного движка, чтобы понять ваш код.
В случае с атрибутами PetaPoco это означает, что ваш класс можно использовать с PetaPoco, но не с каким-либо другим DAL (например, EF), если только вы не добавите атрибуты этого класса (EF Code First использует тот же подход с атрибутами).
Второе последствие связано с серверной базой данных. Если вы переименуете таблицу, столбец или любую другую часть, указанную в вашем атрибуте PetaPoco, в виде постоянной волшебной строки, впоследствии вам придется изменить и эту строку. Это просто означает, что вы должны быть тщательными при внесении изменений в базу данных...
person
Robert Koritnik
schedule
12.04.2012