Будет ли Dapper не работать с участниками, у которых есть собственные геттеры/сеттеры?

Судя по коду, с которым я работаю, это так. Я не смог найти ничего в документации по dapper, где прямо говорилось бы, что он выиграл не работает с членами, у которых есть настраиваемая логика получения/установки, но я видел этот пример:

public class Dog
{
    public int? Age { get; set; }
    public Guid Id { get; set; }
    public string Name { get; set; }
    public float? Weight { get; set; }

    public int IgnoredProperty { get { return 1; } }  //red flag?
}           

Похоже, что тот факт, что один член с пользовательским поведением получения имеет префикс Ignored, может означать, что Dapper не будет пытаться заполнить эти значения. Это правда? Это в документации, и я просто проглядел это?


person Abe Miessler    schedule 05.09.2012    source источник


Ответы (1)


Причина, по которой dapper проигнорирует его, заключается в том, что у него нет сеттера. Ему все равно, как ваши свойства реализованы внутри, но ему нужен установщик для использования свойства (хотя установщик не обязательно должен быть общедоступным).

Он также может использовать поля в качестве отступления.

person Marc Gravell    schedule 05.09.2012
comment
Можете ли вы указать документы по использованию непубличных сеттеров? Я хотел бы инкапсулировать установщик с помощью кода, но все же использовать Dapper для его установки из БД. Могу ли я иметь частный или защищенный сеттер? - person Thiago Silva; 28.09.2016
comment
@ Тиаго да; просто добавьте ключевое слово private, protected или internal перед set - person Marc Gravell; 28.09.2016
comment
Благодарность! Я получаю синтаксис частного сеттера, просто не был уверен, что нам нужно что-то делать с dapper, чтобы он мог получить доступ и установить эти свойства, если они отмечены частными сеттерами, например, мы должны сделать с NHibernate или некоторыми другая большая структура ORM. - person Thiago Silva; 28.09.2016
comment
@Thiago Я твердо верю, что это должно работать по умолчанию. - person Marc Gravell; 28.09.2016