Что делает EntityFramework Code Сначала делать с помощью свойств getters/seters?

Что именно делает EntityFramework для сопоставления свойств, которые имеют пользовательские геттеры и сеттеры при использовании кода First?

Он просто вызывает getter для свойства при сериализации и setter при десериализации? Поэтому я мог бы сделать что-то глупое, как...

public class Foo {

    public DateTime TimeAccessed {
        get {
            return DateTime.Now;
        }
        set {
            TimeDeserialized = DateTime.Now;
        }
    }

    [NotMapped]
    public DateTime TimeDeserialized { get; private set; }
}

Примечание. Я не заинтересован в использовании приведенного выше кода или что-то в этом роде... это только для иллюстративных целей.

Кроме того, при сопоставлении свойства с кодом First, все геттеры и сеттеры должны быть public?

Ответ 1

Да; EF называет геттеры и сеттеры.
Для EF фактически невозможно было бы работать каким-либо другим способом.

Нет; они могут быть даже частными. (хотя само свойство должно быть общедоступным)