11

在使用 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 映射属性时,是否所有的 getter 和 setter 都需要是public?

4

1 回答 1

13

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

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

于 2012-08-15T00:04:47.683 回答