EntityFramework Code First 如何处理属性获取者/setters


在使用

Code First 时,EntityFramework 究竟做了什么来映射具有自定义 getter 和 setter 的属性?

它是否只是在序列化时调用

属性的 getter,在反序列化时调用 setter? 所以我可以做一些愚蠢的事情,比如...

public class Foo {
    public DateTime TimeAccessed {
        get {
            return DateTime.Now;
        }
        set {
            TimeDeserialized = DateTime.Now;
        }
    }
    [NotMapped]
    public DateTime TimeDeserialized { get; private set; }
}

注意我对使用上面的代码或类似的东西没有实际兴趣......它仅用于说明目的。

另外,在使用 Code First 映射属性时,是否需要public所有 getter 和 setter

是的;EF 确实调用了 getter 和 setter。
EF 实际上不可能以任何其他方式工作。

不,它们甚至可以是私人的。 (尽管财产本身必须是公共的)

最新更新